我想从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);
}
任何人都可以帮助我理解上述代码中的问题所在。
提前致谢。
答案 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
答案 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/'