我有一个 SQL 查询,我想将控制器名称作为 where 子句比较参数之一传递。应用程序中有许多控制器。根据控制器名称,将执行不同的查询结果。那么如何将控制器的名称传递给第三个控制器。
使用这个@ViewContext.RouteData.Values["controller"]
,我可以获得控制器的名称,但只能在该控制器的视图中。那么如何在另一个控制器动作方法中实现这一点。
我有一个 SQL 查询,我想将控制器名称作为 where 子句比较参数之一传递。应用程序中有许多控制器。根据控制器名称,将执行不同的查询结果。那么如何将控制器的名称传递给第三个控制器。
使用这个@ViewContext.RouteData.Values["controller"]
,我可以获得控制器的名称,但只能在该控制器的视图中。那么如何在另一个控制器动作方法中实现这一点。
在 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"]}}
controllerNamePar
将作为 url 中的查询字符串发送。
POST 请求示例
@using (Html.BeginForm("MyAction", "OtherCon", FormMethod.Post))
{
@Html.Hidden("controllerNamePar", ViewContext.RouteData.Values["controller"])
<input type="submit" value="OK" />
}
controllerNamePar
将作为 html 表单的一部分发送。