私の mvc3 アプリには次の URL があります。http://mysite.com/controller/details?id=56
のように検索エンジンフレンドリーにしたい
http://mysite.com/controller/title-of-the-entity-56
どうすれば達成できますか?
私の mvc3 アプリには次の URL があります。http://mysite.com/controller/details?id=56
のように検索エンジンフレンドリーにしたい
http://mysite.com/controller/title-of-the-entity-56
どうすれば達成できますか?
新しいルートを設定する必要がありますが、エンティティの ID を自分で解析することを再考することを強くお勧めします。つまり、次のとおりです。
この URL を使用すると、id を数値データ型 (int など) としてアクションに渡すことができます: http://mysite.com/controller/details?id=56
この URL では、ID は文字列の一部としてのみ渡すことができます: http://mysite.com/controller/title-of-the-entity-56
..つまり、文字列を解析し、数値を抽出して変換する必要があります。
この形式を目指す方が良いでしょう: http://mysite.com/controller/details/id/title-of-entity、多少 StackOverflow がそれを行う方法。
Global.asax.cs の既定のルートの上に、次のルートを追加してみてください。
routes.MapRoute(
"DetailsRoute",
"details/{id}/{entityTitle}",
new { controller = "details", action = "Index", id = UrlParameter.Optional }
);
次に、これを詳細コントローラーのインデックス アクションとして使用できます。
public ActionResult Index(int id, string entityTitle) {
}
サイモン ホワイトヘッドに感謝します。まさに私が探していたものです。
以下の投稿で詳しく説明しています
http://www.deliveron.com/blog/post/SEO-Friendly-Routes-with-ASPnet-MVC.aspx