问题标签 [model-binders]

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

asp.net - 如何在 ASP.NET MVC 中测试自定义模型绑定器?

我在我们的 ASP.NET MVC 应用程序中编写了一些自定义模型绑定器(实现 IModelBinder)。我想知道对它们(活页夹)进行单元测试的好方法是什么?

0 投票
2 回答
2767 浏览

asp.net - 具有复杂类型验证的 Asp.net MVC 模块绑定

我正在 asp.net mvc 中构建一个问卷应用程序,但我在使用模块绑定器时遇到了复杂类型列表的问题。

首先:我无法让 Questionnaire.IList<QuestionGroup>.IList<Question> 对象图与活页夹一起使用。所以在下面的示例代码中,我只使用了一级 IList。

第二:我很想将我的存储库/工厂而不是类传递给活页夹,这样我就可以放弃表单问题和数据库问题之间的映射,只处理一组对象。或者至少比这段代码更漂亮一点;)。

有人为我指明了正确的方向吗?

控制器:

部分视图(主视图只是对 QuestionGroup 中的问题进行 foreach 并为每个问题呈现此视图)

0 投票
3 回答
5981 浏览

asp.net-mvc - ASP.NET MVC - 表单和模型绑定器中的多个模型

我有一个需要填充 2 个模型的表单。通常我在表单发布操作上使用 ModelBinderAttribute 即

在我的表单中,这些字段的名称与模型属性相同...

但是在这种情况下,我有 2 个不同的模型需要填充。

我该怎么做呢?有任何想法吗?是否可以?

0 投票
10 回答
154925 浏览

asp.net-mvc - 日期格式不正确的 MVC DateTime 绑定

Asp.net-MVC 现在允许隐式绑定 DateTime 对象。我有一个动作

这成功地将 ajax 调用中的字符串转换为 DateTime。但是,我们使用日期格式 dd/MM/yyyy;MVC 正在转换为 MM/dd/yyyy。例如,使用字符串“09/02/2009”提交对操作的调用会导致 DateTime 为“02/09/2009 00:00:00”,或者在我们的本地设置中为 9 月 2 日。

为了日期格式,我不想滚动我自己的模型活页夹。但是,如果 MVC 能够为我执行此操作,则似乎不必更改操作以接受字符串然后使用 DateTime.Parse。

有什么方法可以更改 DateTime 的默认模型绑定器中使用的日期格式?默认模型绑定器不应该使用您的本地化设置吗?

0 投票
1 回答
527 浏览

asp.net-mvc - MVC 问题中的模型绑定器

我收到以下错误传递到字典的模型项的类型为“MvcWebApplication.Models.Product”,但此字典需要“MvcWebApplication.ViewModels.ProductCommonViewModel”类型的模型项。

控制器代码如下:-

模型粘合剂:

产品类别

我究竟做错了什么?

0 投票
2 回答
1352 浏览

asp.net-mvc - MVCContrib 网格并使用模型绑定器回发

我的 MVCContrib 网格的内容来自强类型视图上的模型。发布帖子时,当它返回控制器时,网格的内容不在模型对象中。我可以看到这是因为网格呈现为一个表格,其中包含单元格中的文本。有什么我可以做的,这样当帖子发生时,我发送到网格的列表数据会在帖子中返回?

0 投票
1 回答
638 浏览

asp.net-mvc - 对 ModelBinder 中的特定数据类型进行自定义绑定

我正在创建自己的自定义 ModelBinder,它继承自 DefaultModelBinder,并手动绑定 XElement 类型的属性。

现在看来我必须重写“BindProperty”方法,如下所示:

我应该使用什么代码:

A)从发布的表单值中获取属性值?

B)将此值注入属性?

我尝试在 DefaultModelBinder 类上运行 Reflector 以查看它是如何做到的,但代码非常混乱。

我需要以前做过这件事的人来引导我完成它。

0 投票
16 回答
56314 浏览

asp.net - 数据输入后修剪字符串的最佳方法。我应该创建自定义模型绑定器吗?

我正在使用 ASP.NET MVC,我希望在将所有用户输入的字符串字段插入数据库之前对其进行修剪。由于我有许多数据输入表单,我正在寻找一种优雅的方式来修剪所有字符串,而不是显式地修剪每个用户提供的字符串值。我很想知道人们如何以及何时修剪字符串。

我考虑过可能创建一个自定义模型绑定器并在那里修剪任何字符串值......这样,我所有的修剪逻辑都包含在一个地方。这是一个好方法吗?是否有任何代码示例可以做到这一点?

0 投票
2 回答
157 浏览

c# - 如何将复杂类绑定到视图,同时保留我的自定义验证属性?

在我的项目中,我有一个使用另一个类的模型类,如下面的示例所示。模型中的属性之一取决于对子对象的一个​​属性的验证——在此示例中,LastName 属性取决于对 Address.PostalCode 属性值的验证。我实现了一个自定义验证属性来验证我的 LastName 属性,它工作得很好。

问题在于控制器中的 Address 属性不是从视图中构造的,并且它始终为 null。在此示例中,无论我在视图中发送什么,user.Address 始终为空。这是控制器代码。

这是视图:

为了解决这个问题,我创建了一个自定义的虚拟绑定器,将视图中的字段映射到模型中的属性,如下所示:

活页夹工作正常,但验证属性不再工作。我认为必须有比这更好的绑定方法,是吗?

这个活页夹只是将 LastName 映射到 LastName 并将 Address.streetName 映射到 Address.streetName,我想应该有一种方法可以实现这一点,而不必编写所有这些繁琐的代码,也不会破坏自定义验证机制。

0 投票
3 回答
7646 浏览

backbone.js - 使用 Backbone.ModelBinder 将类添加到元素的属性值

我在 Backbone.js Marionette 项目中使用 Backbone.ModelBinder。我有一个场景,我无法弄清楚如何使用 ModelBinder 自动更新我的模型/UI。

我的模型有一个“状态”字符串属性,有多个状态。在这个例子中,我将展示两个的代码:'soon','someday'

在我的 UI 中,我有一个列表,我使用点击事件来设置模型状态,并更新类以突出显示 UI 中的相关链接。

感觉就像我这样做是一种冗长而笨拙的方式!代码膨胀会随着我需要支持的状态数量的增加而增加。使用 ModelBinder 实现相同结果的最佳方法是什么?