2

where句のcompareパラメーターの1つとしてコントローラー名を渡したいSQLクエリがあります。そして、アプリケーション内には多くのコントローラーがあります。コントローラ名に応じて、実行されるクエリの結果は異なります。では、どうすればコントローラーの名前を3番目のコントローラーに渡すことができますか。

これを使用して@ViewContext.RouteData.Values["controller"]、コントローラーの名前を取得できますが、そのコントローラーのビュー内でのみ取得できます。では、これを別のコントローラーアクションメソッドでどのように実現できるのでしょうか。

4

1 に答える 1

1

ASP MVC でアクション メソッドに値を渡す方法はいくつかあります。リクエストの種類によって異なります。

GET リクエストの例

// navigation to action
@Html.ActionLink("link","myAction","otherCon", new {controllerNamePar = ViewContext.RouteData.Values["controller"]}

// render result of action into current view
@{Html.RenderAction("myAction","otherCon", new {controllerNamePar = ViewContext.RouteData.Values["controller"]}}

controllerNameParURL のクエリ文字列として送信されます。

POST リクエストの例

@using (Html.BeginForm("MyAction", "OtherCon", FormMethod.Post))
{
    @Html.Hidden("controllerNamePar", ViewContext.RouteData.Values["controller"])
    <input type="submit" value="OK" />
}

controllerNameParhtml フォームの一部として送信されます。

于 2012-12-17T12:06:26.090 に答える