次のようなASP.NETMVCルートを設定したいと思います。
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{idl}", // URL with parameters
new { controller = "Home", action = "Index", idl = UrlParameter.Optional } // Parameter defaults
);
これは、次のようなリクエストをルーティングします...
Example/GetItems/1,2,3
...私のコントローラーのアクションに:
public class ExampleController : Controller
{
public ActionResult GetItems(List<int> id_list)
{
return View();
}
}
idl問題は、 urlパラメーターをからにstring変換しList<int>て適切なコントローラーアクションを呼び出すために何を設定するかです。
文字列を前処理するために使用されたが、タイプを変更しなかった関連する質問をここで見ました。OnActionExecutingここではうまくいかないと思いますOnActionExecuting。コントローラーをオーバーライドしてActionExecutingContextパラメーターを調べると、ActionParameters辞書idlにnull値のキーが既に含まれていることがわかります。おそらく、文字列からList<int>...thisへのキャストが試行されたためです。私が制御したいルーティングの一部です。
これは可能ですか?