可以在控制器/操作方法的参数上使用 [FromQuery] 特性,并指定 QueryString 参数的字符串类型,以便可以对未解码的原始参数进行处理。
例如,如果您希望通过控制器/操作方法传递“param1”参数并跳过 URL 解码,则可以执行以下操作:
[HttpGet("myaction")]
public IActionResult MyAction([FromQuery(Name = "param1")] string queryParam)
{
// use the "queryParam" variable here, it will contain the raw, un-decoded string value of the "param1" query string parameter
}
在上面的方法中,我们在参数中使用了 [FromQuery] 特性,并使用 "Name" 参数指定了查询字符串参数的名称。由于我们将参数声明为字符串类型,因此我们可以自行处理该参数的编码。使用指定名称的 QueryString 参数的值将自动传递作为未解码的字符串,而无需进行 URL 解码。
这样,我们就可以在此操作方法中自行处理编码。