次のようなURLを開発したいと思います。
http://mysite.com/products/1/best-product-in-the-world
適切なレコードを取得するために必要なのは、次のルートだけです。
http://mysite.com/products/1
製品の説明をURL( "best-product-in-the-world")に追加すると、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の不正なリクエスト例外を作成します。私が質問の正義を行ったかどうかはわかりませんが、必要に応じてさらに明確にすることができます。
更新:この投稿のURLは次のとおりです、そして私は非常に似たようなことをしようとしています!
http://stackoverflow.com/questions/1148955/creating-search-engine-friendly-urls-in-asp-net-mvc