我的Controller方法返回Json对象,其中url的形成如下所示:
return Json(new { url = Url.Action("ShowContact", "Customer", new { vm = contactVM }) }, JsonRequestBehavior.AllowGet);
在ajax调用的成功代码中,我想将此url分配给window.location.href,以便我可以根据url形成重定向到视图。但是ajax调用的返回值显示作为url的一部分传递的路由值的纯文本值。
因此,我没有得到任何我希望传递给控制器的重定向操作方法的路由值。
那么我有什么选择来传递我的路由值,这是一个复杂的c#对象,包括集合?有没有更好的方法来实现我想做的事情?
谢谢,
答案 0 :(得分:0)
您可以直接传递网址字符串而不是' Url.Action()'。 像这样:
string url = "Customer/ShowContact?vm=" + contactVM;
return Json(url , JsonRequestBehavior.AllowGet);
答案 1 :(得分:0)
尝试拼凑它:
return Json(
new
{
url = Url.Action("ShowContact", "Customer"),
vm = contactVM
},
JsonRequestBehavior.AllowGet);
然后在客户端:
var url = result.url + '?vm=' + JSON.stringify(result.vm);
当然,我从未测试过这个。
答案 2 :(得分:0)
简单而简短
返回Json(new {redirectUrl = @ Url.Action(“ View”,“ Controller”)});