c# - 如何将 Request.Query/Form 对象作为 ASP.Net Core 5 中的一组“反序列化”参数传递给自定义方法?
问题描述
上下文:
在 ASP.Net Core 5 控制器类中,如果我使用自定义命名参数编写 GET 处理程序方法,框架将尝试将 Query 或 Form 字典值与这些参数匹配。这适用于简单类型,例如字符串、数字和布尔值,但也适用于更复杂的类型,例如数组或自定义对象。例子:
[HttpPost]
public ActionResult PostFormData([FromForm] FormModel model) { ... }
public class FormModel {
// Properties matching the form values
}
问题:
如何将 Asp.Net Core 的这一内置功能与不在 ControllerBase 类中的自定义处理程序方法一起使用?换句话说,给定一个HttpRequest
对象和一个方法签名 ( MethodInfo
),我如何使用动态解析的请求参数调用该方法,就像 ASP.Net 在控制器中那样?
代码:
HttpRequest request = ...; // E.g. from a HttpContext
MethodInfo handlerMethod = ...; // A method info from a custom class (not a Controller)
SomeAspNetHelperClass.InvokeMethodWithRequestParameters(request, method); // <-- ???
我意识到我可以自己实现这个,但我知道.Net 已经为它内置了工具,我不想重新发明轮子。
解决方案
推荐阅读
- python - 我的 renpy 代码在工作标签上失败了,菜单坏了,所有的东西都死了
- filter - 过滤器上的粘性位置不起作用
- python - 如何在列表理解中使用 else 语句?
- c++ - Q:打印一个字符串的所有子序列,包括空字符串,递归实现,报错:expression:string subscript out of range
- c++ - is_copy_constructible typetrait 给出了错误的答案
- node.js - 第一次调用 api 时保存响应配置并进一步使用它
- r - 可用于 R 中任何商店的操作函数
- amazon-web-services - 在 AWS 的 SharedCredentialFile 中使用“RoleArn”注册 CredentialProfile 时出错
- r - R-数据框在变异后不存储表/数据
- amazon-web-services - AWS SNS 通配符过滤