我有一个主视图,它呈现了两个局部视图。主视图包含窗体中的两个部分视图。每个局部视图还包含表单。所有3个视图共享相同的视图模型。我想做的是用主视图封装来自所有视图的数据,并用部分视图运行特定的控制器操作结果。
我想知道这是不是可能的。在调试时,我发现我的内容总是发布到主视图窗体的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>
}发布于 2013-02-20 08:34:32
正如Dave提到的,嵌套表单不是有效的HTML。它不仅仅是HTML5,而是任何版本的超文本标记语言。
在某些情况下,它可能会在某些浏览器中工作,但它永远不会有效。你永远不能依赖将会发生的事情,即使它看起来确实有效。最好的做法是在一个页面上使用多个非嵌套表单。
你能解释一下为什么你认为你需要嵌套表单吗?
发布于 2013-02-20 07:48:32
不能,您不能有嵌套表单。抱歉的。
请参阅HTML5 guidelines
“流内容,但没有表单元素后代”
https://stackoverflow.com/questions/14969740
复制相似问题