4

有一个 Html.BeginForm 包含 Ajax.BeginForm 并且在 Ajax.BeginForm 之外有一个提交按钮。但是这个提交按钮不起作用。如果我在 Ajax.BeginForm 之前使用提交按钮,它工作正常。Ajax.BeginForm 中的提交按钮也可以正常工作。我的问题是,如果我在 Ajax.BeginForm 之后使用提交按钮,为什么提交按钮不起作用;提前致谢。

@using (Html.BeginForm("AssignTestGet", "Test"))
{

   using (Ajax.BeginForm("TestPreviewTemplate", "Test", new AjaxOptions { HttpMethod = "POST", InsertionMode = InsertionMode.Replace, UpdateTargetId = "template" }))
    {
        <button type="submit" id="questionId" name="questionId" value="@ViewBag.id" class="submit" style="margin-left:45px;margin-top:-15px;"></button>
        <input type="hidden" id="templateId"value="@ViewBag.id" name="templateId" class="tr"/>
    }
    <div id="template">
    @Html.Partial("_testTemplate", Model)
    </div>


    <input type="submit" value="submit" />  
}
4

1 回答 1

4

HTML 不支持另一种形式之间的一种形式。这是违反HTML规则的。因此,在解析时,它只解析外部表单而不是内部表单,因此外部提交按钮不起作用。

您可以使用两种不同的形式给出不同的 ID。

@using (Html.BeginForm("AssignTestGet", "Home", FormMethod.Post, new { @id ="OuterForm" }))
 {
    <div id="template">

    </div>

    <input type="submit" value="submit" id="mymyb" />  
}


@using (Ajax.BeginForm("TestPreviewTemplate", "Home", null, new AjaxOptions { HttpMethod = "POST", OnBegin="MyMy()", UpdateTargetId = "template" }, new { @id="innerForm"}))
{
    <input type="submit" value="submit Inner" id="mymyba" />  
}
于 2013-04-08T09:41:06.273 回答