从Jquery调用action方法并将用户重定向到外部站点

时间:2017-10-12 05:06:42

标签: javascript c# jquery ajax asp.net-mvc

我想从jQuery调用mvc控制器动作方法,并且当调用action方法时,应该将用户转移到另一个站点。我已经尝试使用jquery ajax来执行此操作,但在response.redirect之后,我的页面仍保留在相同的URL上,没有任何更改。

 $.ajax({
        url: '/Controller/Action',
        success: function (Data) {
        //don't want to use this callback as I require only calling the 
        action method
        }
    });

并在控制器中

public void Action(){
  // process the request and redirect
    Response.Redirect("url", false);
 }

任何人都可以帮助我理解上述代码中的问题所在。

提前致谢。

3 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情

return Redirect("http://www.google.com");

或尝试使用javascript

public ActionResult Index()
{
 return Content("<script>window.location = 'http://www.example.com';
 </script>");
}

您可以查看此链接以了解Redirect vs RedirectResult

return new RedirectResult() vs return Redirect()

答案 1 :(得分:0)

我尝试了它并且它正在工作。我希望这会有所帮助: - )

<强> HTML

 <button class="btn btn-primary" onclick="RedirectTosite()">Redirect To Google</button>

Jquery Call

function RedirectTosite() {
    $.ajax({
        url: '/Employee/RedirectTosite',
        success: function (Data)
        {
            window.location = Data;              
        }
    });
}

<强>控制器

 public JsonResult RedirectTosite()
    {
        return Json("http://www.google.com", JsonRequestBehavior.AllowGet);
    }

答案 2 :(得分:0)

我不知道你为什么要使用ajax调用服务器,如果你不想对数据库进行任何数据操作,如果你的目标只是重定向到一个页面,只需使用javascript代码重定向,如

window.location.href = '/Controller/Action/'

好的我确信你已经对void方法做了一些工作,如果你在void方法上重定向页面,ajax请求失败,你没有被重定向到另一个页面。要使它工作,您只需删除代码行

    Response.Redirect("url", false);
从控制器

并在ajax的成功函数内写下如下代码行。

window.location.href = '/Controller/Action/'