我知道不允许嵌套<form>
标记,但是我想实现类似的功能。
我有一个用于创建用户个人资料的表单,并且在该表单中,我希望允许用户指定他们参加过的一所或多所学校。
在我当前的设置(如下)中,每个表格只能提交一所学校。为了简化问题,我从视图中删除了验证和标签。
视图:
<% using (Html.BeginForm())
{ %>
<div>
<fieldset>
<legend>Basic Information</legend>
<%: Html.EditorFor(m => m.Name) %>
<!-- more input fields-->
</fieldset>
<fieldset>
<legend>Schools</legend>
<%: Html.EditorFor(m => m.SchoolName) %>
<!-- more input fields -->
</fieldset>
<p>
<input type="submit" value="Create" />
</p>
</div>
<% } %>
此视图的类型很强,是包含所有属性字段的
ProfileViewModel
。我的控制器包含一个非常简单的Create
操作,该操作将输入保存到数据库中。这很好。我想做的是允许用户使用此表单添加多所学校。在asp.net中,我将使用UpdatePanel来实现所需的功能,但是我阅读的所有内容均表明,在MVC中,标准是使用PartialView和jQuery / ajax调用。
如果我要在PartialView中封闭表单的Schools部分,如何在另一个表单中嵌套此PartialView来“提交”和“更新”而不影响主视图?
如何更改视图模型以反映这一点?我应该在包含所有已添加学校的
List<School>
中保存一个ProfileViewModel
还是有更好的方法?我应该将SchoolViewModel传递给PartialView吗? 最佳答案
您可以看一下following article。