私の MVC 4 アプリケーションでは、Area を使用しました。これが私のルートです。
context.MapRoute(
"Service_AcceptBid",
"Service/{controller}/{action}/{id}/{accept}",
new { area = "Service", controller = "Project", action = "AcceptBid", id = UrlParameter.Optional, accept = UrlParameter.Optional }
);
context.MapRoute(
"Service_BidNegotiation",
"Service/{controller}/{action}/{id}/{bid}",
new { area = "Service", controller = "Project", action = "Negotiations", id = UrlParameter.Optional, bid = UrlParameter.Optional }
);
これらのリンクを .cshtml ページに配置しました。
<div dir="ltr">
@Html.RouteLink("Accept", "Service_AcceptBid", new { controller = "Project", action = "AcceptBid", Id = item.ProjectId, Accept = item.Id })
@Html.RouteLink("Negotiate", "Service_BidNegotiation", new { controller = "Project", action = "Negotiations", Id = item.ProjectId, Bid = item.Id })
</div>
最初のリンクがクリックされると、AcceptBid
コントローラーが呼び出され、そのパラメーター (Id、Accept) が url 値に設定されます。しかし、2 番目のリンクをクリックすると、コントローラー メソッドの Id パラメーターが設定されましたが、2 番目のパラメーター (Bid) は null です。
なぜこれが起こるのですか?
この問題を解決するにはどうすればよいですか?
ありがとう。