post メソッドの URL からデータを取得する必要がありました。私のasaxには次のルーティングがあります:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
次に、ホーム コントローラーの [Get] の下に次のように入力します。
[HttpGet]
public ActionResult Index()
{
var id = ControllerContext.RouteData.GetRequiredString("id");
}
そして投稿で:
[HttpPost]
public ActionResult SomeNewNameHere(HomeModel homeModel)
{
var id = ControllerContext.RouteData.GetRequiredString("id");
}
ここでの問題は、post メソッドの URL からその ID が必要なことです。デバッグすることで、get メソッドで id を取得していることに気付きましたが、投稿すると null が返されてエラーになります。基本的に、RouteValues は Get では機能しますが、私の Post では機能しません。ここで見逃したものはありますか?ありがとう!
サンプル URL:
http://localhost:1000/Controller/Action/12312121212
編集:
私もこれを試しましたが、うまくいきませんでした:
var id = ControllerContext.RouteData.Values["id"];
ビュー上のフォーム:
@using (Html.BeginForm("SomeNewNameHere", "Home", FormMethod.Post))