问题标签 [defaultmodelbinder]

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 回答
2163 浏览

c# - ViewModel 属性上的装饰以使用不同的名称进行绑定

在 MVC3 上,有没有办法装饰 ViewModel 属性以便DefaultModelBinder在请求中为其使用不同的名称?

例如,假设您有以下视图模型:

但是传入的参数是来自外部源(例如某些第三方组件)的Dir 。

我知道自定义模型绑定器可以处理这个问题,但我认为必须有一种方法来装饰属性,类似于动作参数可以Bind(Prefix="...")用来定义该映射的方式。

0 投票
1 回答
344 浏览

asp.net-mvc - HtmlAttributes 字典未正确绑定

我正在编写的 html 帮助程序存在模型绑定问题。我已经在我的模型上声明了一个属性来处理 html 属性,简而言之;

然后我在Scott Hanselman 的帖子中呈现以下 html ;

但是在回调时 DefaultModelBinder 将值创建为字符串数组,这样下次我呈现我的 html 值时;

我得到以下 HTML;

这显然是字符串数组的默认 ToString 表示。价值是第一要素!!

似乎默认模型绑定器对声明为字典对象的值类型参数感到困惑。Dictionary<string,object>正如我在 Html Helpers 源代码中观察到的那样,我确信我通过将 htmlAttributes 声明为 来遵循约定 。我在这里遗漏了一些明显的东西吗?

编辑:

只是更新以提供更多信息。我看到的绑定问题是 JQuery AJAX 后$.post回调的结果,其中数据正在使用 JQuery 的 .serialize(); 进行序列化;在检查正在发送的数据时,一切看起来都井井有条。

0 投票
0 回答
130 浏览

ajax - 未为 MVC 远程验证调用调用 DefaultModelBinder 代码

我有一个继承自的 DefaultModelBinder,我尝试覆盖 BindModel 调用和 OnPropertyValidating 调用。

但是,当使用 ASP.NET MVC 的内置远程验证时,当控制器操作被调用时,它会绕过我的 DefaultModelBinder,因此它不会绑定/验证我想要的方式。

我已经在我的 global.asax 中注册了它,有什么想法吗?

0 投票
1 回答
865 浏览

asp.net-mvc-4 - DefaultModelBinder 返回子类 MVC4

几天来,我一直在尝试阅读有关此 DefaultModelBinder 的信息,但我仍然很困惑。我正在使用 MVC 4 和 EF 5 TablePerHiarchy 结构。

我的问题是我有一个资源基类:

有子类(DVD、电子书、书籍等)

我的控制器代码使用自定义 ModelBinder

这样我就可以将我的视图传递给资源(作为 DVD、书籍或任何其他类型)

并根据其派生属性绑定它,这些属性发生在部分视图内的开关中。

我的第一个问题是,当我将表单发布回来时,它作为资源而不是作为强制类型返回(所以我丢失了所有派生类型属性),这就是我创建 ResourceModelBinder 的原因。现在它正确地绑定/回发强制转换的类型,但它不绑定资源的基类属性,如 Title、ResourceID、ResourceTypeID..

谁能帮我理解我所缺少的,以便它实际上绑定了基础资源类属性以及派生类型属性。?

0 投票
1 回答
1149 浏览

asp.net-mvc-4 - 如何使用 autofac 在 asp.net mvc 4 中设置 DefaultBinder ModelBinders.Binders.DefaultBinder?

我想使用 autofac 在 asp.net mvc 4 中设置 ModelBinders.Binders.DefaultBinder=new SmartBinder(),这样做的正确方法是什么?

0 投票
1 回答
318 浏览

forms - 提交删除第一个的项目列表会删除所有项目

我有一个模型,其中包含子项目列表,如下所示:

现在,当我使用 for 循环和 editorFor 渲染列表时,我得到的 html 是这样的:

现在想象一下通过 jQuery 从 HTML 中删除第一个元素,因为我不再希望它出现在我的列表中,然后保存列表。返回的数据没有第一个[0]元素,并且从 1 到 9 的所有元素都转到服务器,但是模型绑定失败并且它(在服务器上)显示项目列表是null

我究竟做错了什么 ?

这是默认模型绑定器的错误吗?

0 投票
1 回答
2071 浏览

asp.net-mvc-4 - 使用 MVC4 ApiController 时如何清理 JSON 输入参数?

我构建了一个基于 AntiXSS 的 HTML 清理器,通过覆盖默认模型绑定器来自动清理用户输入字符串,该模型绑定器在标准发布请求上运行良好。然而,当使用新的 ApiController 时,默认模型绑定器永远不会被调用,我认为这是因为这个新的 MVC 控制器使用 JSON 格式化程序来绑定来自请求正文的输入数据。

那么如何扩展格式化程序,以便在字符串属性被 JSON 绑定后修改它们?我宁愿不必在控制器级别实现它,并且应该有一种方法可以在它到达控制器之前做到这一点。

0 投票
1 回答
78 浏览

c# - 什么时候在 ASP.NET 管道中调用 DefaultModelBinder?

我想知道在DefaultModelBinderASP.NET 管道中何时调用?

背景:我想找一个合适的地方来设置当前线程的文化。

0 投票
1 回答
171 浏览

model-view-controller - 在自定义模型绑定中应该覆盖哪些方法或属性?

我有一个需要两个功能的 MVC 应用程序的自定义绑定方案

1) 一个通用的、可重用的自定义绑定器,它允许将表单/查询属性映射到类属性。

2)将给定表单/查询参数拆分为字典(或两个属性)的类特定自定义绑定器。

第一个要求是通过我通过 Google 找到的解决方案完成的(我很抱歉我无法提供链接,因为我忘记了在哪里找到它)。

本质上,有两个部分

像这样使用

第二块是

我的问题是要求#2。在这种情况下,SearchRequest 类上有一个附加属性

其中 Dictionary 的键是字段名,Dictionary 项的值是顺序(升序或降序)

使用示例

我需要绑定表单/查询值的逻辑将类似于

我知道我应该再次从 DefaultModelBinder 继承......或者在这种情况下 AliasModelBinder(它又从 DefaultModelBinder 继承)以支持 Alias,但我的问题是我不确定要覆盖哪个方法。关于重用 DefaultModelBinder 的最佳方式的信息似乎很少(即几乎没有)。

我的另一个问题涉及使用两个自定义模型绑定器的最佳方式。据我所知,没有模型绑定器链接。我有什么办法可以在没有#2 的解决方案明确了解解决方案#1 的情况下完成要求#2?需求 #2 关心获取单个值并将其拆分为字典。它真的关心 SortOrder 属性的值来自别名表单/查询参数吗?

任何帮助,将不胜感激。

谢谢你。

杰森

0 投票
0 回答
229 浏览

asp.net-mvc-3 - 绑定时在子对象上设置父属性

我们有一个形状的层次模型(yuml-ized):

[订单] 1 个父项 - 项目 0..* [LineItem]

Order以及一个带有-typed 参数的控制器操作:

由于发布的表单也包含行项目的字段,我们从 MVC 的模型绑定中获取对象树,其中绑定器为每个要绑定的订单创建一个新的订单对象。

问题:是否有可能让绑定机制也将Parent每个属性设置为它们正在添加LineItem的对象?Order


我认为绑定Order对象的绑定器也负责通过调用BindModel子对象绑定器来为每个子对象执行绑定器。我们已经有了自定义实现(从 继承DefaultModelBinder):AOrderBinder以及LineItem活页夹。

我们的方法如何LineItem.BindModel确定LineItem被绑定的是“独立”还是即将添加到Order正在绑定的对象中,如果是后者,我们如何获得对它的引用Order