问题标签 [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.

0 投票
3 回答
17570 浏览

c# - 如何使用反 xss 攻击清理 web api 中的输入数据

下面是我的代码片段

模型类

// 客户.cs

我想清理模型类的“名称”字段中的值,如下所示

// CutstomModelBinder.cs

我将“DefaultBinder”更改为我的“CutstomModelBinder”,如下所示

// Global.asax.cs

我写了一个控制器类如下

// 客户控制器.cs

当我如下调用上述控制器类的“Post”方法时,它正在按预期调用控制器类的“Post”方法。但它没有在我的“CutstomModelBinder”类中调用“BindProperty”方法。

// 程序.cs

请让我知道使用“DataBinders”的正确方法,以便我可以在控制器中接收呼叫之前在一个公共位置清理输入数据。

0 投票
4 回答
308 浏览

angularjs - asp.net 5 / mvc 6 / 模型活页夹 / 角度

我不知道,因为当我按角度发帖时,不会填充对象,例如类别或状态。只是产品。但是,请注意Request.Form 列表中的信息。未正确执行活页夹。我究竟做错了什么?是否有任何 web api 配置?我已经尝试通过 application/json,[frombody] 发送数据......我没有选择。提前致谢。


模型图像

请求图片

0 投票
1 回答
75 浏览

javascript - 如何使用模型绑定器将数据从表单+跨度值发布到数据库

美好时光。我是 Asp.net-MVC 的新手。

我有一个表单,它从用户那里获取数据,并且此页面中有一个跨度,我想将输入数据和跨度值发布到我的数据库中。

我想使用模型绑定器,但我不知道如何命名与我的模型相同的跨度。

这是我的行动:

span 正在从 JavaScript 中获取价值

这是我的表格,但我在这里只写了一个速记输入。:

我想将spanid="selecteddate" 的值发布到名为的列中的数据库中Date

如果有人能告诉我这怎么可能,或者你有什么更好的建议,我很感激?

0 投票
2 回答
4894 浏览

asp.net-mvc - 在 MVC5 中使用表单发布数据中的模型状态无效

我是 Asp.net MVC 的新手

我想填写表格并将其发布到数据库,但我的模型 Binder 验证是 false 。我的模型中的错误没有显示

我很抱歉,因为我不知道我无法缩短它的问题是什么:

这是我的模型:

这是我的看法:

我省略了一些表单组,它们允许为空的速记。

这是我在请求控制器中的创建操作:

如果有人告诉我使我的请求对象有效的问题是什么,我将不胜感激。如果有可能向用户发送错误,例如他们将 null 放在服务器所需的名字中。

0 投票
0 回答
741 浏览

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 总是如下所示

我也注意到了

这可能意味着我没有机会从身体中读取任何内容。

我是否可能需要混合中的“格式化程序”才能获得所需的结果?

类似的自定义模型绑定器的参考实现是否已经存在于某处,以便我可以简单地使用它,也许使用一些简单的模块?

谢谢你。

0 投票
2 回答
1228 浏览

c# - asp.net mvc 模型绑定器不适用于编辑模式下的下拉列表

为什么模型活页夹在编辑模式下的下拉列表中不起作用?

在编辑视图中,我编写了这段代码并测试了两个不同的 ddl:

在我的控制器中

但是编辑模式下的所有文本框都填充了模型活页夹,但下拉列表没有发生。

为什么 ? 在此处输入图像描述

- - - -更新 - - - -

我的意思是在编辑模式下,模型绑定器将数据库中的所有数据绑定到文本框和每个元素中......但在下拉列表中模型绑定器不会将数据库中的数据作为选定值绑定到下拉列表中

0 投票
1 回答
74 浏览

c# - 找到未从响应主体(表单数据)绑定到模型 MVC、默认模型绑定器的属性

我发送发布请求并获得响应正文表单数据:0[family]=Marco&0[name]=Polo&0[age]=66&1[family]=Family&0[name]=Name&0[age]=22

我有模型:

对于绑定我使用DefaultModelBinder

  • 我想知道我有响应“0 [name] = Polo”的数据,它没有绑定到模型用户。模型用户中不存在属性“名称”。
  • 我想知道是否有更多数据作为响应,然后我们可以绑定。

我该怎么做?

0 投票
0 回答
156 浏览

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 创建一次然后重新使用?

0 投票
0 回答
579 浏览

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 方法。

0 投票
0 回答
145 浏览

asp.net-mvc - 将 GET 请求中的复杂数据对象传递给 MVC 控制器操作

我有如下模型类:

在客户端,收集的数据如下对象:

它通过 $.param 函数转换为查询字符串并添加到 URL。

控制器动作如下:

模型数据过滤器可以正确获取 CompanyName 和 Country 值,但 Period.From 和 Period.To 始终为 NULL。我想知道我是否必须专门为这个模型类定制 ModelBinder?或者我应该使用 $.param 以外的其他函数在 URL 中构造查询字符串?

更新:如果查询字符串更改为

控制器动作可以正确获取所有数据。因此 Period[from] 默认模型绑定器是不可接受的,而 Period.from 是。

有人对此有最简单和最好的解决方案吗?