2011-02-18 61 views
6

我在我的控制器之一中使用了下面的代碼;asp.net mvc ajax post - redirecttoaction不起作用

  if (Request.IsAjaxRequest()) { 
      return RedirectToAction("PreviewAndSendEmail"); 
     } 

我調試它,它來到返回線,但重定向沒有發生。是否有可能在Ajax.BeginForm中做到這一點?這裏是剃刀代碼;

using(Ajax.BeginForm(new AjaxOptions { LoadingElementId = "loading" })) { 

    <b>Choose E-mail Template : </b>@Html.DropDownList("emailtemps")<br /><br /> 

    <input type="submit" value="Preview & Send" /> 

    <span id="loading" style="display: none;"> 
     <img title="loading..." alt="load" src="@Url.Content("~/Content/App_Icons/gifs/loading.gif")" 
    </span> 

} 
+0

可能重複http://stackoverflow.com/questions/3534956/how-can-i-redirecttoaction-within-ajax-callback – 2011-02-18 13:36:50

回答

15

您不能在服務器的AJAX操作中重定向。如果你想讓你的瀏覽器在AJAX動作中重定向,你需要使用javascript。顯然使用AJAX重定向是絕對沒用的。如果你打算重定向使用一個正常的Html.Begin形式,並不打擾與AJAX。

+1

感謝您的評論。我同意你的這個觀點。我用它來顯示加載gif。有沒有其他方式顯示gif – tugberk 2011-02-18 14:29:40

1

爲什麼不直接調用PreviewAndSendMailEmail?由於您不需要重定向本身(更改網址等),因此無需使用它。