6

我在我的一个控制器中使用了以下代码;

            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>

}
4

2 回答 2

15

您不能在来自服务器的 AJAX 操作中重定向。如果您希望您的浏览器在 AJAX 操作中重定向,您需要从 javascript 执行此操作。显然使用 AJAX 重定向是绝对没用的。如果您打算重定向使用普通的 Html.Begin 表单并且不要打扰 AJAX。

于 2011-02-18T13:37:01.323 回答
1

为什么不直接调用 PreviewAndSendMailEmail 呢?由于您不需要重定向本身(更改 url 等),因此无需使用它。

于 2011-02-18T13:35:50.583 回答