有没有办法为MVC应用程序中的每个操作添加一些默认参数。所以如果从锚点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
锚点调用):
<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>
和我的操作一样(可以是应用程序中的任何操作,每个操作都应该有该参数FormControlID
public ActionResult WhatEverAction(int TestID=0)
{
}
在OnActionExecuting
我只能访问TestID
,但不能访问href的参数FormControlID
答案 0 :(得分:3)
您可以从Request
属性的HttpContext
属性访问查询字符串值
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
int currentformcontrolid = Convert.ToInt32(filterContext.HttpContext
.Request.QueryString["FormControlID"].ToString());
}
答案 1 :(得分:1)
您可以尝试在路线中指定该参数:
routes.MapRoute(
name: “Default”,
url: “{controller}/{action}/{FormControlID}”,
defaults: new { controller = “Home”, action = “Index”, FormControlID = UrlParameter.Optional }
);
答案 2 :(得分:1)