asp.net-mvc - 具有多个路由值的 Url.Action 助手的问题

标签 asp.net-mvc asp.net-mvc-3 url razor query-string

我目前正在 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" ,但是 bnull .

这是 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/

相关文章:

javascript - 无法在 JavaScript 中显示来自 Base64 字符串的图像

c# - MVC 局部 View 呈现但不执行 Razor 代码

c# - 基类中的审计信息

c# - 限制 Linq 列表中返回的结果数

php - 我的 php 代码转换了一些字符

javascript - 为什么调用 RedirectToAction 时我的网页不刷新?

asp.net-mvc-3 - ASP.NET MVC 3 Ninject 自定义成员资格和角色提供程序

jquery - 使用Jquery的MVC4 Ajax调用,应该是Post还是Get?

php - 从浏览器读取 url

ruby-on-rails - 自动将参数附加到 *_url 或 *_path 方法(Rails)