URLルーティングでは、実際の追加作業は必要ありません。
BooksまたはBookReviewsコントローラを作成するだけです。 そのようなパーマリンクであなたの幸せならばあなたは /書籍/詳細/ 1 と /BookReviews /詳細/ 4などの基本的なパーマリンクに
を持っていますIdを
を取るアクションメソッドを作成し、あなたがしています行ってもいい。しかし :)
、あなたはさらにそれを取ると少しより多くの仕事とそれがさらに、検索エンジンに優しいようにしたい場合は......
最初に作成または「シンプルを見つける必要があります文字列(おそらく書籍やレビューアのタイトル)を取り、英数字以外の文字をa - などにエンコードします。 URL Slugify algorithm in C#?
は、今、私たちのようなルートを作成することができます
ブックス/ {タイトル} - {ID}
routes.MapRoute(
"BooksSeoRoute",
"Books/{slug}-{id}",
new { controller = "Books", action = "Details" } // Parameter defaults
);
は、だから我々は次のようになりパーマリンクで終わる:/タイトル・オブ ブックス書評のために-Theブック-38
あなたは
routes.MapRoute(
"BookReviewsSeoRoute",
"Books/{book-slug}/{slug}-{id}",
new { controller = "BookReviews", action = "Details" } // Parameter defaults
);
を使用することができますので、あなたは、「ネストされた」アプローチを持っている場合があります書籍/ The-Of-The-Book-38/Review-by-John-Smith-24
あなたのモデル/エンタテイメント/データベースにスラッグフィールドを追加することもできます。動的にあなたの意見
=Html.ActionLink("Permalink","Details","Book",new{@Id=Model.Id, @Slug=Model.Slug})
ちょっとそこでは
つまり、あなたのタイトル/著者からそれを生成しますゲッター。私の現在のルート設定での設定はあなたのコードで述べたとおりですが、私はそれをルートレベルでslugパラメータに変更する必要があります。そこで代わりに: "Books/{book-slug}/{slug} - {id}"、example.com/ {slug}が必要です。これで私を助けることができますか? –