gpt4 book ai didi

Asp.Net MVC 5 绑定(bind)参数完全来自正文

转载 作者:行者123 更新时间:2023-12-04 02:07:12 24 4
gpt4 key购买 nike

我想防止通过 url 查询字符串将敏感数据发布到 MVC 5 应用程序。

在 MVC 中有一个 DefaultModelBinder . DefaultModelBinder寻找 ActionMethod url 查询字符串、正文和路由中的参数。但我的目标是仅从正文和 绑定(bind)参数。不是 来自路由或查询字符串。

在 Asp.Net WebApi 中有这样一个概念。属性 [FromBody] 将完成这项工作:http://www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api

有适合MVC的东西吗?

我找到了System.Web.ModelBinding.FormAttribute (https://msdn.microsoft.com/en-us/library/system.web.modelbinding.formattribute(v=vs.110).aspx)。但是,如果我装饰参数,它对模型绑定(bind)没有影响。

最佳答案

默认情况下,活页夹在四个位置查找数据:表单数据、路由数据、查询字符串和任何上传的文件。

可以将绑定(bind)限制为单一数据源。为此,您应该调用 更新型号 方法传递,作为第二个参数,表单值提供者 对象( IValueProvider 的实现)。

public ActionResult Products()
{
IList<Products> products = new List<Products>();
UpdateModel(products, new FormValueProvider(ControllerContext));
return View(products);
}

对象的完整列表是(它们都接收 ControllerContext 作为构造函数参数):
  • 表单值提供者 :在正文中搜索数据(Request.Form)
  • RouteDataValueProvider : 搜索 route 的数据(RouteData.Value)
  • 查询字符串值提供者 :在查询字符串(Request.QueryString)中搜索数据
  • HttpFileCollectionValueProvider : 搜索上传的文件 (Request.Files)
  • 关于Asp.Net MVC 5 绑定(bind)参数完全来自正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32012288/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com