读取动作原型中不存在的ActionFilterAttribute中的参数

时间:2019-01-01 11:19:55

标签: asp.net-core-2.0

我正在使用Ajax发送表单,它有两个输入。 接收操作仅需要使用传递的值之一。 docker login -u admin -p Harbor12345 reg.test.com WARNING! Using --password via the CLI is insecure. Use --password-stdin. Login Succeeded 需要使用另一个参数。

基于这个原因,我将动作写为

why ci job login failed?
how to resolve it?

但是当我尝试执行操作时,在我的动作过滤器中

ActionFilterAttribute

由于参数不存在,我得到了一个例外。

  

System.Collections.Generic.KeyNotFoundException:'字典中不存在给定键'value1'。'

如果我将操作的原型更改为

[AttributeImWriting]
public ContentResult Get(Guid value0) //[...]

然后我可以从我的filterAttribute中读取context.ActionArguments["value1"]

所以问题是::在public ContentResult Get(Guid value0, string value1) //[...] 中,我如何读取表单发送的参数,但该参数在操作原型中不存在应用了过滤器?

我也尝试使用value1,但效果不佳。

1 个答案:

答案 0 :(得分:0)

如果使用POST将值发送到控制器端,则在自定义ActionFilterAttribute中,可以从Form属性中获取参数:

var value1 = context.HttpContext.Request.Form["value1"].ToString();

如果您使用Get将值发送到控制器端,则可以从QueryString属性中获取参数,然后拆分并获取每个项目:

var querystring = context.HttpContext.Request.QueryString;