2014-03-19 21 views
0

爲什麼IE的行爲如此?它適用於Chrome和Firefox罰款,所以我在在IE 8/7中替換targetid後的Ajax.beginform重定向MVC2

得到這個

view.ascx

<% using (Ajax.BeginForm("Action1", "TheController", new { pid= Request.QueryString["pid"] }, new AjaxOptions { InsertionMode = InsertionMode.Replace, HttpMethod = "POST", UpdateTargetId = "setting-modal-body", OnSuccess = "fnPreloadAttr" }, new { @class = "form-horizontal", id = "setting-edit-form" })) 
        {%> 
       <div id="setting-modal-body" class="clearfix"> 
        <%Html.RenderPartial("SettingModal"); %> 
       </div> 
       <%} %> 

TheController.cs

[HttpPost] 
      public ActionResult Action1(SettingModel setModel) 
      { 
       ModelState.Clear(); 
setModel.Aa="1";     
       return PartialView("SettingModal", setModel); 
      } 

它工作正常,並更換設置模態體的內容,但不久後,由於'onload'事件,IE將頁面重定向到Action1,如何防止這種情況發生?

回答

0

放棄使用ajax.beginform,它只是的onsubmit完成後不返回false,所以我用這個代替

<form action="/TheController/Action1?pid=<%=Request.QueryString["pid"] %>" class="form-horizontal" id="setting-edit-form" method="post" onsubmit="Sys.Mvc.AsyncForm.handleSubmit(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, httpMethod: 'POST', updateTargetId: 'setting-modal-body', onSuccess: Function.createDelegate(this, fnPreloadAttr) });return false;"> 

MVC2 Ajax不是好