有一个 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" />
}

最佳答案

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" />
}

关于asp.net-mvc-3 - mvc3 提交按钮不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15873306/

10-13 09:53