【问题标题】:Url.Action is encoding parameter valuesUrl.Action 是编码参数值
【发布时间】: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 的回答对我有用。

标签: asp.net-mvc asp.net-mvc-2 view


【解决方案1】:

首先,您应该尽可能避免使用 QueryString 参数。将它们转换为路由参数。接下来,花括号应该被转义,这就是 Url.Action() 助手正在为您做的事情。

【讨论】:

  • 这可能是他的本意,他想使用路由建立一个URL,但是将路由值应用到客户端
【解决方案2】:

Url.Action 辅助方法用于生成 url。网址需要经过网址编码才能成为有效网址。所以你观察到的是完全正常的行为。助手通过编码所有参数生成一个有效的url。

【讨论】:

  • 谢谢。我的问题是 {0} 是一个占位符。我将用实际的页码替换那个位。我已将占位符更改为其他内容 (PAGE),这样它就不会被编码。应该有一个选项来编码或不编码 URL 参数。
  • -1 感谢您陈述显而易见的问题,但 OP 的问题仍未得到解答
猜你喜欢
  • 2011-09-10
  • 1970-01-01
  • 1970-01-01
  • 2018-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-01
相关资源
最近更新 更多