【问题标题】:RedirectToAction redirecting to wrong placeRedirectToAction 重定向到错误的地方
【发布时间】:2017-03-16 19:03:07
【问题描述】:

我有一个用 VS2015 开发的 ASP.Net MVC 网站。我有一个名为 EditBatchController 的控制器。这有一个从 Javascript Ajax 调用发布到的“重新提交”方法。

来电:

self.resubmit = function () {
    var data = { Recs: ko.toJS(this.recs) };

    $.ajax({
        type: "POST",
        url: BASE_URL + 'EditBatch/Resubmit',
        data: ko.toJSON(data),
        contentType: 'application/json',
        async: true,
        success: function (data) {
            window.location = BASE_URL + 'EditBatch/Index';
        },
        error: function (data) {
            toastrs(false);
        }
    });

这是控制器重新提交方法的签名:

[HttpPost]
//Called by the Knockout View Model to update db
public void Resubmit(List<EditBatchViewModel>recs)
{

在这个方法结束时,我想重定向到不同控制器的“索引”动作,所以我有以下内容:

RedirectToAction(actionName: "Index", controllerName: "APInvoicesSummaryController");

我的问题是,在执行此行时,发出了对 EditBatch/Index 的 GET 请求,而不是 APInvoicesSummaryController/Index - 这显示在以下 Fiddler 屏幕抓取中:

我之前多次成功使用RedirectToAction,但这次我被难住了。谁能告诉我哪里出错了?

【问题讨论】:

  • 你也可以使用APInvoicesSummary,而不是APInvoicesSummaryController作为controllerName。

标签: asp.net-mvc fiddler


【解决方案1】:

哇!一旦我发布,我就可以看到我的错误。重定向到“EditBatch”来自 Javascript -

success: function (data) {
                window.location = BASE_URL + 'EditBatch/Index';

希望这能帮助其他像我一样疲惫的人,甚至可能是我 - 并不少见!

【讨论】:

    猜你喜欢
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 2014-06-20
    相关资源
    最近更新 更多