我知道不允许嵌套<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

10-06 07:51
查看更多