我目前正在 VS2010 中开发 ASP.NET MVC3 应用程序,但在使用 @Url.Action
时遇到了一些问题。 helper 。我有一个 ajax 请求,我在其中使用了这个助手:
var url = '@Url.Action("Action", "Controler", new { a = "a", b = "b" })';
$.post(url).success(function(data) {
...
});
问题是
url
的值之后是 /Controller/Action?a=a&b=b
,请注意 &
路由值之间。这不起作用,但如果我这样做:var url = '@Url.Action("Action", "Controler", new { a = "a", b = "b" })'.replace('amp;', '');
它完美地工作!!!
我的操作是这样的:
public JsonResult Action(string a, string b)
{
...
}
我已经调试了我的应用程序,并且该操作被调用,甚至
a
是 "a"
,但是 b
是 null
.这是
Url.Action
的期望行为吗? ?我不这么认为。请帮助我,我做错了什么?我应该在 Url.Action
中添加另一个参数吗?称呼?提前致谢。
最佳答案
不是你。 Javascript 标识 & 作为 protected 字符并“对其进行编码”
你找到了一种绕过它的方法,我见过其他的。因为这个问题不是问最好的方法,但不管是不是你,我可以向你保证 不是你 .你没有做任何明显的错误。这是 Javascript 的自然行为。
如果我们正在讨论最佳方法,我更喜欢使用 @Url.Action
只是为了获取我的 URL,并将参数作为参数传递给我的 JQuery 方法(.Ajax 方法是我的最爱)。
从 e.camper 借来的例子
$.post(url, { a: "a", b: "b"}).success(...)
关于asp.net-mvc - 具有多个路由值的 Url.Action 助手的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15424380/