変わりたい:
www.testurl.com/sports/blog/1
スポーツが私の領域、ブログが私のアクション、1 がブログ投稿の ID である場合、次のことを行います。
www.testurl.com/sports/blog/test-title-of-blog
ブログはまだ私のアクションですが、ID は表示されませんが、代わりにブログのタイトル/パーマリンクが表示されます。
このアクションの AreaRegistration は次のとおりです。
context.MapRoute(
"sports",
"sports/{action}/{content}",
new { area = "Sports", controller = "Sports", action = "", content = "" });
現時点での私の行動は次のとおりです。
[HttpGet]
public ActionResult Blog(string content)
{
int contentId;
if (Int32.TryParse(content, out contentId))
{
model = service.GetBlogById(contentId);
}
else
{
model = service.GetBlogByTitle(content);
}
//Change URL to be: www.testurl.com/sports/blog/ + model.SEOFriendlyTitle
return View(model);
}
ユーザーはブログの ID だけでなく、タイトルでも検索できますが、ID ではなくタイトルのみを URL バーに表示したいのです。
原因となる継続的なメンテナンスのため、リダイレクト ルールを介してこれを行うことはできません。
コントローラーはこれを行うのに適切な場所ですか? - ID を使用してデータベースからタイトルを取得するまで、タイトルを取得できない場合があることを覚えておいてください
URL を変更してタイトルと ID を表示するにはどうすればよいですか?