Html.BeginForm里面的Html.BeginForm MVC3

Wis*_*Guy 2 html asp.net-mvc razor asp.net-mvc-3

我有一个主视图,呈现两个部分视图.主视图包含表单内的两个部分视图.每个部分视图也包含表单.所有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>
Run Code Online (Sandbox Code Playgroud)

部分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>
}
Run Code Online (Sandbox Code Playgroud)

Eri*_*sch 7

正如Dave所提到的,嵌套表单不是有效的HTML.它不仅仅是HTML5,而是任何版本的HTML.

可能在某些浏览器中工作,在某些情况下,但它永远不会有效.即使它似乎有效,你也永远不会依赖于会发生什么.您最好的做法是在页面上使用多个非嵌套表单.

你能解释为什么你认为你需要嵌套表格吗?


Dav*_*ich 5

不,你不能拥有嵌套表格.抱歉.

请参阅HTML5指南

"流内容,但没有表单元素后代"