MVC3 URL编码?

Alp*_*pha 6 url routing url-routing url-encoding asp.net-mvc-3

ASP.NET MVC3/Razor.

我发现当我创建一个动作链接时,比如说:

@Html.ActionLink(product.Title, "Detail", "Products", new { id = product.ProductID }, null)
Run Code Online (Sandbox Code Playgroud)

MVC3引擎创建我的产品链接.例如:

http://myhost/{ActionUrl}/PRODID
Run Code Online (Sandbox Code Playgroud)

但是,如果我的产品ID包含任何特殊字符,则不会对其进行URL编码.

http://myhost/{ActionUrl}/PROD/ID
Run Code Online (Sandbox Code Playgroud)

当然,这打破了我的路由.我的问题是:

  1. 我应该期望它自动url编码值吗?有没有办法设置它?
  2. 如果没有,那么编码和解码那些最简洁的方法是什么?我真的不想在每个控制器中都这样做.

谢谢!

Dar*_*rov 4

如果您的 id 包含特殊字符,我建议您将其作为查询字符串而不是路径的一部分传递。如果没有做好准备迎接崎岖的道路。查看以下博客文章