私の問題は、MVC で 3 つのパラメーターを取る Map Route を作成したことです。3 つすべてまたは 2 つだけを指定すると、パラメーターが URL からコントローラーに渡されます。ただし、最初のパラメーターのみを指定すると、渡されず、null が返されます。この動作の原因は不明です。
ルート:
routes.MapRoute(
name: "Details", // Route name
url: "{controller}/{action}/{param1}/{param2}/{param3}", // URL with parameters
defaults: new { controller = "Details", action = "Index", param1 = UrlParameter.Optional, param2 = UrlParameter.Optional, param3 = UrlParameter.Optional } // Parameter defaults
);
コントローラ:
public ActionResult Map(string param1, string param2, string param3)
{
StoreMap makeMap = new StoreMap();
var storemap = makeMap.makeStoreMap(param1, param2, param3);
var model = storemap;
return View(model);
}
次の場所に移動すると、文字列 param1 は null を返します。
/StoreMap/Map/PARAM1NAME
しかし、次の場所に移動しても null は返されません。
/StoreMap/Map/PARAM1NAME/PARAM2NAME