【发布时间】:2016-11-07 10:40:44
【问题描述】:
我正在尝试将我的数据绑定到 IList 模型上。这是我认为的代码:
@using (Html.BeginForm("fncModify", "Main", FormMethod.Post,
new { enctype = "multipart/form-data" }))
for (int x = 0; x < Model.lstEmployeeNames.Count; x++)
{
@Html.HiddenFor(y=>y.lstEmployeeNames[x])
}
在我的模型视图上:
public IList<string> lstEmployeeNames { get; set; }
但是在我的控制器视图中,我的表单值总是返回一个空值:
public ActionResult fncModify(FormCollection form)
{
IList<string> lstResult = new List<string>();
//this always return null
var lstResult = form["lstEmployeeNames"];
return RedirectToAction("Index", "Main");
}
你认为我在这里缺少什么?我打算将字符串列表从我的 Model.lstEmployeeNames 传递给我的控制器。
【问题讨论】:
-
您是否检查过 FormCollection 方法对象。使用断点是否获得了任何价值。
-
@shashank 我得到空值。我不是我在这里想念的。但是如果数据不是集合,数据是可以的。
-
y=>y.lstEmployeeNames[x]将创建带有names 的元素,这些元素最后有一个[number],这是名称的一部分,您在阅读FormCollection时似乎忽略了它们.为什么你仍然使用它而不是直接映射到List<string> lstEmployeeNames? -
@GSerg 实际上我没有明白你的意思。如果我将数据作为 razor 中的 IList 放在不同的变量上,我将如何通过 FormCollection 传递它?
-
@WillyDavidJr 您将代码保留在视图中并将控制器过程更改为
public ActionResult fncModify(List<string> lstEmployeeNames)。
标签: c# asp.net asp.net-mvc asp.net-mvc-4 razor