asp.net - 在 mvc 中执行操作之前的所有操作中的默认参数

标签 asp.net asp.net-mvc action-filter onactionexecuting

有没有办法为 MVC 应用程序中的每个操作添加一些默认参数。所以如果从 anchor href发送,我可以获得参数的值。

public override void OnActionExecuting(ActionExecutingContext filterContext)
{
      int currentformcontrolid = 0;
       foreach (var parameter in filterContext.ActionParameters)
       {
           if (parameter.Key == "FormControlID")
           {
               currentformcontrolid = Int32.Parse(parameter.Value.ToString());
           }
       }
}

和我的 href 像这样(这是一个 AJAX anchor 调用):
<a 
  data-ajax="true" 
  data-ajax-method="GET" 
  data-ajax-mode="replace" 
  data-ajax-update="#soapfunction-screens" 
  href="/Patient/Intake?FormContorlID=100003"
  data-islandingpage="False"
  id="InkAlcoholDrug" >
    Alcohol Drug Use 
</a>

和我的 Action (可以是应用程序中的任何 Action ,每个 Action 都应该具有该参数 FormControlID
public ActionResult WhatEverAction(int TestID=0)
{

}

OnActionExecuting我只能访问 TestID但不是href的参数FormControlID

最佳答案

您可以从 Request 访问查询字符串值。 HttpContext 的属性(property)属性(property)

public override void OnActionExecuting(ActionExecutingContext filterContext)
{
    int currentformcontrolid = Convert.ToInt32(filterContext.HttpContext
       .Request.QueryString["FormControlID"].ToString());
}

关于asp.net - 在 mvc 中执行操作之前的所有操作中的默认参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50735918/

相关文章:

asp.net - session 状态。如何使用自定义模式管理 session ?

c# - 如何使用 ASP.NET MVC 中的路由修复 404?

.net - aspnet_regiis -i 安装 MVC 4 后出现 "webengine4.dll"错误

c# - Asp.Net Boilerplate 在应用程序服务验证时抛出异常

c# - SignalR 连续消息传递

asp.net - 无法在 Visual Studio 2013 中添加数据库文件。错误 50

c# - 在与 ASP.Net 中的搜索控件相同的页面上显示搜索结果的最佳方式

asp.net - 将变量从 Web API Controller 方法传递到过滤器

c# - WebAPI : Get controller object from System. Web.Http.Filters.ActionFilterAttribute