MVC ルーティング システムを理解しようとしていますが、期待どおりに機能しません。
このルートが定義されているとします:
context.MapRoute(
"NewCertificates",
"NewQuote/GetCertificate/{date}/{id}",
new { area = "NewQuote", controller = "Quote", action = "GetCertificate" },
new[] { "Acme.Areas.NewQuote.Controllers" }
);
そして、私のビューのこのアクションリンク:
@Html.ActionLink("Click Here", "GetCertificate", new { controller = "Quote", area = "NewQuote", date = "20121219", id = "acme" })
生成された URL は次のようになると思います。
http://localhost:50582/NewQuote/GetCertificate/20121219/acme
しかし、代わりに私は得る:
http://localhost:50582/NewQuote/GetCertificate/acme?date=20121219
なぜこれが起こっているのか誰にも教えてもらえますか?
上記のルートより前のルートを表示するように編集します。
context.MapRoute(
"NewQuoteValidation",
"NewQuote/Validation/{action}/{id}",
new { area = "NewQuote", controller = "Validation", action = "IsImeiAvailable", id = UrlParameter.Optional },
new[] { "Acme.Areas.NewQuote.Controllers" }
);
context.MapRoute(
"NewAjax",
"NewQuote/Ajax/{action}/{id}",
new { area = "NewQuote", controller = "Ajax", action = "Index", id = UrlParameter.Optional },
new[] { "Acme.Areas.NewQuote.Controllers" }
);
context.MapRoute(
"NewQuote",
"NewQuote/{action}/{id}",
new { area = "NewQuote", controller = "Quote", action = "Select", id = UrlParameter.Optional },
new[] { "Acme.Areas.NewQuote.Controllers" }
);