私の目標は、デフォルトのasp.net mvcを引き続き使用したいが、id
このような1つのコントローラーでGuidを使用したいことです。
http://example.com/MyController/Index/387ecbbf-90e0-4b72-8768-52c583fc715b
これが私のルートです
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
MyControllerは今
public ActionResult Index(Guid guid)
{
return View();
}
エラーが発生します
パラメータディクショナリには、メソッド 'System.Web.Mvc.ActionResult Index(System.Guid)'のnull許容型ではないタイプ 'System.Guid'のパラメータ 'guid'のnullエントリが含まれています。
ルートにIDがあるからだと思いますか?1つのコントローラーid
で、アプリケーションの残りの部分(デフォルトとして)でGUIDをパラメーターとして使用するにはどうすればよいですか?
パラメータの名前をからguid
に変更するだけid
です:
public ActionResult Index(Guid id)
{
return View();
}
アクションをバインドするとき、ASP.NET MVCはアクションメソッドのタイプと名前を検査し、それらを要求によって提供されるパラメーターにマップします。この用語id
はルートで使用されているため、それに応じてアクションのパラメーターに名前を付ける必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加