MVCのURLを次のようにしたいと思います。
http://www.site.com/project/id/projectname
例:
http://www.site.com/project/5/new-website
私のコントローラーは:
public ActionResult Details(int id, string projectname)
私のアクションリンクは次のとおりです。
@Html.ActionLink("click here", "Details", "Project", new { id = project.ProjectID, projectname = project.ProjectName })
そして私のルートは:
routes.MapRoute(
"Project",
"project/{id}/{projectname}",
new { controller = "Project", action = "Details", id = "", projectname = "" }
);
確かに、システムには十分な情報があり、プロジェクト名がUrlの一部になることを知っているので、リンクをUrlEncodeして、スペースをハイフンに置き換える必要がありますか?しかし、そうではないので、スペースは%20になります
これをどこでカスタマイズするかわかりませんか?Html.ActionLinkをオーバーライドしますか?編集のたびにデータベースに「URL対応」バージョンの名前を保存することは、その場で自動的に実行する必要がある場合、そのような無駄のように思えます。また、Html.ActionLinkを使用するたびに「FriendlyURL」関数を呼び出す必要はありません。これも、自動的に処理される必要があります。