我想开发如下所示的 URL:
http://mysite.com/products/1/best-product-in-the-world
我需要得到正确记录的地方是以下路线:
http://mysite.com/products/1
当我将产品描述部分添加到 URL(“世界上最好的产品”)时,我遇到了 URL 编码问题。在 ActionLink(...) 中构造我的这部分 URL 时,我尝试使用 Server.UrlEncode:
<%= Html.ActionLink(item.Subject, "../Post/Detail",
new { id = item.ID,
descriptiveUrl = Server.UrlEncode(Product.ShortDescription) },
new { rel = "canonical",
title = Product.ShortDescription,
@class = "product-hyperlink" })%>
但这会为特殊字符和空格呈现规则编码的元素,就像下面这样:
http://localhost:2392/Products/Detail/1/best+product+in+the+world253f
...这会创建一个 400 错误的请求异常。不确定我的问题是否公正,但如果需要,可以提供进一步的说明。
更新:这篇文章的网址如下,我正在尝试做一些非常相似的事情!
http://stackoverflow.com/questions/1148955/creating-search-engine-friendly-urls-in-asp-net-mvc