我有一个主视图,呈现两个部分视图。主视图包含表单内的两个部分视图。每个部分视图也包含表单。所有3个视图共享相同的viewmodel。我想要做的是使用主视图封装来自所有视图的数据,并使用部分视图运行特定的Controller动作结果。
我想知道这是否可行。在调试时,我看到我的内容总是发布到主视图表单的HTTPPost。我已相应地为每个表单提交了按钮。对不起代码发布,它全部拆分。
主要观点:
@using (Html.BeginForm("Main", "Registration", FormMethod.Post,
new { @class="mainform" }))
{
<form>
<fieldset>
<div id ="option1" class="conglomerate">
@Html.Partial("_GetBusiness")
</div>
<div id ="option2" class="dealership">
@Html.Partial("_GetLocation")
</div>
<button type="submit" value="Create" class="buttonBlue" id="">
<span>Create a new dealer</span>
</button>
</fieldset>
</form>
部分1
@using (Html.BeginForm("CreateBusiness", "Business", FormMethod.Post,
new { @class="buisinessform" }))
{
<form>
<div class="editor-field">
@Html.DropDownListFor(m =>m.BusinessId, new SelectList(Model.Businesses,
"BusinessId", "BusinessName"), "")
</div>
<label>Your company not listed? Register yours below:</label>
<div class="editor-label">
@Html.LabelFor(model => model.BusinessName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.BusinessName)
@Html.ValidationMessageFor(model => model.BusinessName)
</div>
<button type="Button" value="" class="buttonBlue"id="TestSubmit">
<span>Add Dealer</span>
</button>
<div class ="confirm">
<button type="submit" value="Create" class="buttonBlue" id="">
<span>Click here to confirm dealer addition</span>
</button>
</div>
</form>
}
答案 0 :(得分:7)
正如Dave所提到的,嵌套表单不是有效的HTML。它不仅仅是HTML5,而是任何版本的HTML。
可能在某些浏览器中工作,在某些情况下,但它永远不会有效。即使它似乎有效,你也永远不会依赖于会发生什么。您最好的做法是在页面上使用多个非嵌套表单。
你能解释为什么你认为你需要嵌套表格吗?
答案 1 :(得分:5)