Url.Action 是编码参数值
Posted
技术标签:
【中文标题】Url.Action 是编码参数值【英文标题】:Url.Action is encoding parameter values 【发布时间】:2011-02-03 20:46:32 【问题描述】:在 ASP.NET MVC 中,如果我使用:
我明白了:
/usermanagement?page=%7B0%7D
但我想得到:
/usermanagement?page=0
为什么要encondig我的参数值,未编码的参数值怎么写?
谢谢
【问题讨论】:
如果您使用 javascript 进行替换,您也可以转义 JavaScript 字符串。例如:url = url.replace(escape('0'), pagenumber) 这个问题解决了吗?我遇到了同样的问题。 here 的回答对我有用。 【参考方案1】:首先,您应该尽可能避免使用 QueryString 参数。将它们转换为路由参数。接下来,花括号应该被转义,这就是 Url.Action() 助手正在为您做的事情。
【讨论】:
这可能是他的本意,他想使用路由建立一个URL,但是将路由值应用到客户端【参考方案2】:Url.Action
辅助方法用于生成 url。网址需要经过网址编码才能成为有效网址。所以你观察到的是完全正常的行为。助手通过编码所有参数生成一个有效的url。
【讨论】:
谢谢。我的问题是 0 是一个占位符。我将用实际的页码替换那个位。我已将占位符更改为其他内容 (PAGE),这样它就不会被编码。应该有一个选项来编码或不编码 URL 参数。 -1 感谢您陈述显而易见的问题,但 OP 的问题仍未得到解答以上是关于Url.Action 是编码参数值的主要内容,如果未能解决你的问题,请参考以下文章
使用 Url.action() 传递动态 javascript 值