在 ASP.NET MVC 中使用 AJAX 方法时使用 C# 控制器重定向到页面

Posted

技术标签:

【中文标题】在 ASP.NET MVC 中使用 AJAX 方法时使用 C# 控制器重定向到页面【英文标题】:Redirect to a page using C# controller while using AJAX method in ASP.NET MVC 【发布时间】:2018-12-03 00:24:10 【问题描述】:

我正在使用 C# ASP.NET MVC,想知道有没有办法在成功的情况下从控制器重定向到其他页面。对于失败情况,它应该返回 JSon 结果重定向到 AJAX 方法。为此,ActionResult 返回类型对我来说没问题。

C# 控制器:

[HttpPost]
public ActionResult DoMyAction(string var1, string var2)

    // Do some action
    if(success)
        Redirect to a page.
    else
        return Json(new  Message = "Action cannot be process..", Status = false);

AJAX 方法:

$.ajax(
        url: '/Home/DoMyAction',
        type: 'POST',
        data:  "var1": "Hello", "var2":"World!",
        datatype: "json",
        contenttype: "application/json; charset=utf-8",
        success: function (result) 
            if (!result.Status)
                // Display error message.
        ,
        error: function () 
        
    );

注意:这里请不要考虑语法,我只想知道从 C# 控制器类重定向的方式。

提前致谢!

【问题讨论】:

可以参考这个链接***.com/questions/17748283/… Ajax 调用无法重定向。您需要在成功回调中重定向。但是你最好做一个正常的提交 感谢 Stephen 和 gokul!这意味着如果我们使用 AJAX,唯一的选项是从 AJAX 回调选项重定向它。 【参考方案1】:

如果你想使用js重定向到一个页面你可以使用

window.location.href = 'your url here'

希望有所帮助。 您需要在成功回调中添加此内容,否则可以使用普通表单提交

【讨论】:

嗯,这是从 JS 端处理的。我正在寻找一种在成功条件下从控制器重定向到其他页面的方法。对于失败的情况,它应该返回 JSon 结果重定向到 AJAX 方法。 你可以使用 RedirectToAction

以上是关于在 ASP.NET MVC 中使用 AJAX 方法时使用 C# 控制器重定向到页面的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ASP.NET MVC 中使用 jQuery ajax 方法将数据列表发送到控制器操作方法?

jQuery 通过 Ajax 在 ASP.NET MVC C# 中调用 Action 方法

ASP.NET MVC页面搜索功能实现(普通方法和使用Ajax)

ASP.Net MVC Recaptcha Jquery Ajax 问题

Asp.net mvc 使用Ajax调用Action 返回数据。

asp.net mvc 使用Ajax调用Action 返回数据