ASP.NET MVC3/Razor。MVC3 URL编码?
我发现,当我创建一个操作环节,比方说,像这样:
@Html.ActionLink(product.Title, "Detail", "Products", new { id = product.ProductID }, null)
的MVC3引擎创建我的产品链接。例如:
http://myhost/{ActionUrl}/PRODID
但是,如果我的产品ID包含任何特殊字符,则它不会被URL编码。
http://myhost/{ActionUrl}/PROD/ID
当然,这打破了我的路由。 我的问题是:
- 我应该期望它能自动对URL进行编码吗?有什么办法可以设置它吗?
- 如果不是,那么对它们进行编码和解码的最简洁的方法是什么?我真的不想在每个控制器中这样做。
谢谢!
我花了一段时间才意识到,但你的回答完全正确。某些字符就像保留的关键字,你无法做任何事情。对于其他人,你可以做怪异的事情,甚至可以使用全路径,但一些特殊字符只能保持这种方式(除非你想用正则表达式重写)。 – Alpha
那么作为查询字符串的代码是什么? –