次のようなルートを持つasp.net mvcアプリケーションがあります。
routes.MapRoute("Blog",
"{controller}/{action}/{year}/{month}/{day}/{friendlyName}",
new { controller = "Blog", action = "Index", id = "", friendlyName="" },
new { controller = @"[^\.]*",
year = @"\d{4}",
month = @"\d{2}",
day = @"\d{2}" }
);
私のコントローラー アクション メソッドの署名は次のようになります。
public ActionResult Detail(int year, int month, int day, string friendlyName)
{ // Implementation... }
私の見解では、私は次のようなことをしています:
<%= Html.ActionLink<BlogController>(item => item.Detail(blog.PostedOn.Year, blog.PostedOn.Month, blog.PostedOn.Day, blog.Slug), blog.Title) %>
ActionLink で生成された URL は機能しますが、URL の書き換えではなく、クエリ文字列変数を使用します。
たとえば、/blog/detail/2008/07/05/my-slug の代わりに /blog/detail/my-slug?year=2008&month=7&day=5 を生成します。
URLが期待どおりになるように、ActionLinkの汎用バージョンで整数値を適切に埋め込む方法はありますか?
ありがとう
ジム