mvc3提交按钮不起作用

时间:2013-04-08 07:14:12

标签: asp.net-mvc-3

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

1 个答案:

答案 0 :(得分:3)

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