gpt4 book ai didi

c# - IEnumerable 数据不从 View 传回 Controller

转载 作者:行者123 更新时间:2023-12-02 04:59:59 30 4
gpt4 key购买 nike

在我的 MVC4 项目 View 中,正在传递 IEnumerable<Settings>要查看的模型。当我将表单提交回我的 Controller 时, Controller 方法的参数为 IEnumerable<Settings> data .问题是 data始终为空。

查看

@model IEnumerable<Settings>

@using (Html.BeginForm("Index", "Layout", FormMethod.Post)))
{
@foreach (var item in Model)
{
@Html.CheckBoxFor(modelItem => item.IsActive, new { @value = item.Id })
@Html.DisplayFor(modelItem => item.Name)
}
<input type="submit" value="Save" />
}

Controller

[HttpPost]
public ActionResult Index(IEnumerable<Settings> data)
{
--actual code goes here
}

型号

[Serializable]
public class Settings
{
public virtual byte Id { get; set; }

public virtual string Name { get; set; }

public virtual bool IsActive { get; set; }

public virtual DataTable DataResult { get; set; }

public virtual int CreatedBy { get; set; }

public virtual DateTime CreatedDate { get; set; }

public virtual int ClientId { get; set; }

public virtual Int16 NoofItems { get; set; }
}

更新:*呈现的 HTML*

<td>
<input checked="checked" data-val="true" data-val-required="The IsActive field is required." id="item_IsActive" name="item.IsActive" type="checkbox" value="13" class="valid"><input name="item.IsActive" type="hidden" value="false">
# of pieces

</td>

更新 1:按照 Andrei 的回答呈现 HTML

<td>
<input checked="checked" data-val="true" data-val-required="The IsActive field is required." name="[0].IsActive" type="checkbox" value="13"><input name="[0].IsActive" type="hidden" value="false">
# of pieces</td>

最佳答案

@Html.CheckBoxFor(modelItem => item.IsActive, new { @value = item.Id })

不会为输入生成正确的名称。您的表单发送相同的 token item.IsActive=true (或错误)所有项目。虽然此方法适用于基元,但不适用于复杂类型。

然而,这是您可以使用 for 执行的操作而不是 foreach :

@model IList<Settings>

@using (Html.BeginForm())
{
@for(int i=0; i<Model.Count; i++)
{
@Html.CheckBoxFor(m => m[i].IsActive, new { @value = Model[i].Id })
@Html.DisplayFor(m => m[i].Name)
}
<input type="submit" value="Save" />
}

请注意,这至少需要 IList<>作为 View 类型 - 否则您无法使用 for 遍历集合.

关于c# - IEnumerable 数据不从 View 传回 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17234453/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com