2013-04-08 54 views
3

有一個Html.BeginForm包含Ajax.BeginForm,並且在Ajax.BeginForm的外面有一個 提交按鈕。但是這個提交按鈕不起作用。如果我在Ajax.BeginForm 之前提交按鈕,它工作正常。 Ajax.BeginForm中的提交按鈕也工作正常。我的問題是, 爲什麼提交按鈕不工作,如果我在Ajax.BeginForm之後提交按鈕; 在此先感謝。mvc3提交按鈕無法正常工作

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

回答

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