【发布时间】:2016-07-22 05:11:51
【问题描述】:
我有一个在多个页面上多次出现的表单。我想把这个表单放在一个局部视图中,并使用数据注释来验证它。
这是我目前得到的:
控制器:
public ActionResult Form()
{
return PartialView("_Form", new FormInput());
}
[HttpPost]
public ActionResult Form(FormInput model)
{
if (!ModelState.IsValid)
{
return PartialView("_Form", model);
}
return PartialView("Form", new FormInput());
}
查看:
<div>
@Html.Action("Form", "Forms")
</div>
<div>
@Html.Action("Form", "Forms")
</div>
局部视图:
@using (Html.BeginForm("Form", "Forms"))
{
<div>
@Html.TextBoxFor(x => x.Name)
@Html.ValidationMessageFor(x => x.Name)
</div>
<div>
@Html.TextBoxFor(x => x.Email)
@Html.ValidationMessageFor(x => x.Email)
</div>
<input type="submit"/>
}
在这段代码中,控制器只返回部分视图而不是主视图。我做错了什么?
是通过 ajax.beginform 解决此问题的唯一解决方案吗?我真的很想使用标准帖子。
提前致谢!
【问题讨论】:
-
返回主视图的action方法是什么样的?
-
嗯.. 好吧,控制器看起来不同,因为表单出现在页面的不同位置。有些只返回一个视图,有些返回一个带有模型的视图。
标签: asp.net-mvc forms validation data-annotations partial-views