【发布时间】:2015-09-18 23:57:55
【问题描述】:
我有一个局部视图,它有一个视图模型,其中包含一个只有电子邮件和姓名输入的表单。我使用 jquery ajax 将此数据发布到我的控制器以进行一些验证。我的控制器是一个 PartialViewResult 方法,见:
[HttpPost]
public PartialViewResult InviteUser(InviteEmailViewModel item)
{
return PartialView("_InvitedUsers", item);
}
我的 jquery 将此方法的结果添加到 DOM,因为我使用 hiddenfor 我得到如下输入:
<input data-val="true" data-val-required="Name is required." id="Name" name="Name" type="hidden" value="test">
<input data-val="true" data-val-regex="Invalid Email Address" data-val-regex-pattern="^(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6}$" data-val-required="Email Address is required." id="Email" name="Email" type="hidden" value="test@test.test">
问题在于我的 ViewModel 包含一个列表,但在发布带有添加的部分视图的表单后,列表为空。我已经使用硬编码的输入字段进行了测试,例如:
<input data-val="true" data-val-required="Name is required." id="Name" name="InviteEmailViewModel[0].Name" type="hidden" value="test">
这似乎确实有效。如何让 MVC 生成像我的硬编码示例中的隐藏字段?
【问题讨论】:
标签: c# asp.net-mvc