c# - 如何在 Web API 中获取传递给请求的所有参数
问题描述
我正在尝试获取传递给请求的所有参数,以便我可以验证类文件中未声明的任何参数是否会引发异常。
假设我的类文件是:
[PermissionFilter("somepermision")]
[Route("/Userdetails", "POST")]
public class UserDetails
{
public string surname{ get; set; }
public string forename{ get; set; }
}
因此,如果用户从邮递员错误地发送参数,我想抛出异常。有什么方法可以从最终用户那里获取所有请求参数。这样我就可以根据我的要求对其进行验证。假设用户在请求类文件中发送了一些额外的参数以及提到的参数,我想在这种情况下抛出异常。
解决方案
您将在 MS_QueryNameValuePairs 键的 Request.Parameters 中找到请求参数
[HttpPost]
public HttpResponseMessage Post()
{
var keyValuePair =this.Request.Properties["MS_QueryNameValuePairs"];
}
并在其上创建一个 foo 循环以获取它们,或者您可以像这样手动获取它们:
[HttpPost]
public HttpResponseMessage Post()
{
var query = this.Request.RequestUri.Query;
query.Remove(0);
List<string> paramteters = query.Split('&').ToList();
}
这对你有用:D
推荐阅读
- python - 如何解决 django 中的反向匹配错误
- javascript - 引导弹出窗口隐藏在 Firefox 浏览器的输入组内不起作用
- python - 如何在 mysql 数据库的表中添加 json 文件?
- scala - 是否将同步 HTTP 请求包装在被视为 CPU 或 IO 约束的 Future 中?
- javascript - 将一个字母替换为空时出错,然后将其与 javaScript 和 cypress 中的数字进行比较
- javascript - 如果使用 JS 调用,则不应用转换
- excel - 从单元格中的列表中提取重复项
- c++ - 终端执行第一个循环并忽略另一个循环
- javascript - 反应:为什么我的 id 未定义?axios.post 请求删除数据而不是更新
- c - POSIX 标准是否要求其规范仅用 C 语言实现?