0

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))
4

4 に答える 4

2

idビューの投稿 URL にパラメーターを追加できます。

@using (Html.BeginForm("SomeNewNameHere", "Home",new { id = Model.ID}, FormMethod.Post))
于 2013-08-21T11:04:58.350 に答える
0

Ufuk Hacıoğulları の助けを借りて、フォームでこのソリューションを思いつきました。

(Html.BeginForm("SomeNewNameHere", "Home",new { id = ViewContext.RouteData.GetRequiredString("id") }, FormMethod.Post))

ここで起こったことは、投稿を行うときにIDが含まれていることです。

于 2013-08-21T11:16:24.703 に答える