问题标签 [modelbinder]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何使用反 xss 攻击清理 web api 中的输入数据
下面是我的代码片段
模型类
// 客户.cs
我想清理模型类的“名称”字段中的值,如下所示
// CutstomModelBinder.cs
我将“DefaultBinder”更改为我的“CutstomModelBinder”,如下所示
// Global.asax.cs
我写了一个控制器类如下
// 客户控制器.cs
当我如下调用上述控制器类的“Post”方法时,它正在按预期调用控制器类的“Post”方法。但它没有在我的“CutstomModelBinder”类中调用“BindProperty”方法。
// 程序.cs
请让我知道使用“DataBinders”的正确方法,以便我可以在控制器中接收呼叫之前在一个公共位置清理输入数据。
javascript - 如何使用模型绑定器将数据从表单+跨度值发布到数据库
美好时光。我是 Asp.net-MVC 的新手。
我有一个表单,它从用户那里获取数据,并且此页面中有一个跨度,我想将输入数据和跨度值发布到我的数据库中。
我想使用模型绑定器,但我不知道如何命名与我的模型相同的跨度。
这是我的行动:
span 正在从 JavaScript 中获取价值
这是我的表格,但我在这里只写了一个速记输入。:
我想将span
id="selecteddate" 的值发布到名为的列中的数据库中Date
如果有人能告诉我这怎么可能,或者你有什么更好的建议,我很感激?
asp.net-mvc - 在 MVC5 中使用表单发布数据中的模型状态无效
我是 Asp.net MVC 的新手
我想填写表格并将其发布到数据库,但我的模型 Binder 验证是 false 。我的模型中的错误没有显示
我很抱歉,因为我不知道我无法缩短它的问题是什么:
这是我的模型:
这是我的看法:
我省略了一些表单组,它们允许为空的速记。
这是我在请求控制器中的创建操作:
如果有人告诉我使我的请求对象有效的问题是什么,我将不胜感激。如果有可能向用户发送错误,例如他们将 null 放在服务器所需的名字中。
asp.net-mvc - 如何在 MVC 6 中编写多态模型绑定器和提供程序
这个问题之前在 SO 和 MVC3 的上下文中的其他地方已经被问过,并且有一些关于它与 ASP.NET Core RC1 和 RC2 相关的点点滴滴,但没有一个例子实际上展示了如何在 MVC 6 中以正确的方式做到这一点.
有以下几类
在我的控制器中,我有这样的东西
我的客户可以发布 BankAccountTransactionModel1 或 BankAccountTransactionModel2,我想使用自定义模型绑定器来确定要绑定的具体模型,该模型基于抽象基类 BankAccountTransactionModel 上定义的属性 ModelType 中的值。
因此,我做了以下
1) 编写了一个简单的模型绑定器提供程序,用于检查类型是否为 BankAccountTransactionModel。如果是这种情况,则返回 BankAccountTransactionModelBinder 的实例。
2) 编写 BankAccountTransactionModel
3)最后我在 Startup.cs 中注册提供程序
整个事情看起来没问题,因为实际上调用了提供者,模型构建器也是如此。但是,我似乎无法在模型绑定器的 BindModelAsync 中编码逻辑。
正如代码中的注释所述,我想要在我的模型绑定器中做的所有事情就是从 http 请求的正文中读取,特别是在我的 JSON 中读取 ModelType 的值。然后在此基础上,我想实例化 BankAccountTransactionModel1 或 BankAccountTransactionModel 并最终通过读取正文中的 JSON 来为该实例的属性分配值。
我知道这只是应该如何完成的粗略近似,但我将非常感谢一些帮助,也许是如何或已经完成的示例。
我在 ModelBinder 中遇到过以下代码行的示例
应该读取值。但是,它在我的模型绑定器中不起作用,并且 typeValue 总是如下所示
我也注意到了
这可能意味着我没有机会从身体中读取任何内容。
我是否可能需要混合中的“格式化程序”才能获得所需的结果?
类似的自定义模型绑定器的参考实现是否已经存在于某处,以便我可以简单地使用它,也许使用一些简单的模块?
谢谢你。
c# - 找到未从响应主体(表单数据)绑定到模型 MVC、默认模型绑定器的属性
我发送发布请求并获得响应正文表单数据:0[family]=Marco&0[name]=Polo&0[age]=66&1[family]=Family&0[name]=Name&0[age]=22
我有模型:
对于绑定我使用DefaultModelBinder
:
- 我想知道我有响应“0 [name] = Polo”的数据,它没有绑定到模型用户。模型用户中不存在属性“名称”。
- 我想知道是否有更多数据作为响应,然后我们可以绑定。
我该怎么做?
asp.net-mvc - 自定义 ModelBinder 构造函数似乎永远不会受到打击,使用 Autofac per-request 注册
我在这样的 MVC5 项目中使用自定义模型绑定器:
public class TypedModelBinder : IModelBinder, IModelBinderProvider {...}
这个类构造函数有一些依赖项,我需要 Autofac 为我注入。然后我在 Autofac 中注册了自定义模型绑定器,如下所示:
builder.RegisterType<TypedModelBinder>()
.As<IModelBinderProvider>()
.InstancePerRequest();
现在我想检查一些注入的依赖项。我在类构造函数代码中放置了一个断点,但我看不到它在发出新请求时被击中。可能它只在第一个请求时被击中,但我看不到,因为那时还没有附加调试器。主要方法public virtual object BindModel(...)
确实受到打击。我正在拉扯我的头发,为什么构造函数永远不会被击中。任何人都知道 Autofac 或 MVC 如何创建和重用 modelbinder 类?也许这些只由 MVC 创建一次然后重新使用?
asp.net-mvc - 将 ModelBinder 用于 int 数组
我的控制器中有一个方法(SurfaceController,它是一个特定的 Umbraco 控制器):
然后我有以下 ModelBinder,因此我可以创建类似“?categoryIds=1,2,3,4,5”的请求,而不是默认行为“?categoryIds=1&categoryIds=2&categoryIds=3&categoryIds=4&categoryIds=5”。
这也意味着当我将 int[] 作为参数发送到 RenderAction 时它不起作用,但是当将值连接到逗号分隔的字符串时它起作用。
我能否以某种方式使其同时使用 int[] 和字符串(每个逗号拆分为 int 数组),除了将 GetCategoryProducts 中的“categoryIds”参数更改为字符串,然后在此方法中将字符串拆分为 int 数组。
我想是否可以保留签名 GetCategoryProducts 方法。
asp.net-mvc - 将 GET 请求中的复杂数据对象传递给 MVC 控制器操作
我有如下模型类:
在客户端,收集的数据如下对象:
它通过 $.param 函数转换为查询字符串并添加到 URL。
控制器动作如下:
模型数据过滤器可以正确获取 CompanyName 和 Country 值,但 Period.From 和 Period.To 始终为 NULL。我想知道我是否必须专门为这个模型类定制 ModelBinder?或者我应该使用 $.param 以外的其他函数在 URL 中构造查询字符串?
更新:如果查询字符串更改为
控制器动作可以正确获取所有数据。因此 Period[from] 默认模型绑定器是不可接受的,而 Period.from 是。
有人对此有最简单和最好的解决方案吗?