问题标签 [modelbinders]

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 投票
1 回答
447 浏览

asp.net-mvc - URI 中带有时间部分的 mvc.net DateTime

我有一组操作在可指定到分钟的范围内返回时间序列数据。它们适用于查询字符串,

/mycontroller/myaction?from=20091201 10:31&to=20091202 10:34
有或没有 URL 编码的冒号,但我认为有一个漂亮的 URL 会很好, /mycontroller/myaction/from-20091201 10:31/to-20091202 10:34
但现在这让 IIS 感到恐惧,因为它不喜欢 URI 中的冒号,所以我得到'错误请求的响应。

那么我的问题是,什么是推荐/标准的行动方案,以确保我可以留在那里的时间?

我是否需要编写自定义 ModelBinder 来解析我自己的日期时间格式?操作是否应该只接受字符串fromto使用自定义格式进行解析,例如"YYYYMMDD-HHmm". 我可以在某处指定自定义格式吗?如果是在哪里?还是我应该放弃这个愚蠢并坚持使用查询字符串参数?

哦,我看到很多人继续谈论 RESTful URL;从我读过的内容来看,没有什么可以说查询字符串不是 RESTful 的——更多的是关于适当使用现有的 HTTP 操作类型。

0 投票
2 回答
872 浏览

asp.net-mvc - 无法将 ModelBinder 属性添加到输入模型的属性

我想指定模型绑定器以用于我的输入模型的属性。

但是 ModelBinderAttribute 不能应用于属性。这似乎很愚蠢,因为我可以将它应用于方法参数。我应该怎么做才能解决这个限制?

0 投票
2 回答
5333 浏览

asp.net-mvc - ASP.NET MVC 2 中的单元测试自定义模型绑定器

我在项目中编写了自定义模型绑定器,它使用 ASP.NET MVC 2。这个模型绑定器只绑定模型的 2 个字段:

如何使用标准 VS 单元测试来测试这个模型绑定器?花了几个小时谷歌搜索,找到几个例子(http://www.hanselman.com/blog/SplittingDateTimeUnitTestingASPNETMVCCustomModelBinders.aspx),但这个例子适用于 MVC1,在使用 MVC2 时不起作用。

我感谢您的帮助。

0 投票
2 回答
1988 浏览

asp.net - 带有多选的asp.net mvc强类型视图模型

我想知道如何将表单值绑定到多选框中的强类型视图。

显然,当表单提交时,多选框将提交我选择的值的分隔字符串......将此值字符串转换回对象列表以附加到要更新的模型的最佳方法是什么?

在控制器内更新我的模型时,我使用如下 UpdateModel:

但是我需要以某种方式将字符串中的值返回到对象中。

我相信它可能与模型绑定器有关,但我找不到任何好的明确示例来说明如何做到这一点。

谢谢!!保罗

0 投票
1 回答
147 浏览

asp.net-mvc - 将 ViewModel 与其他 ViewModelBinders 绑定

我有一个视图模型(我们称之为 HouseVM),但它内部包含另一个视图模型(KitchenVM)。我已经为 KitchenVM 创建了一个自定义模型绑定器。现在我正在创建 HouseVM modelbinder。如何访问我已经在 HouseVM 模型绑定器中为 KitchenVM 完成的模型绑定?

注意:我看过这篇文章

0 投票
2 回答
1933 浏览

asp.net-mvc - ASP.NET MVC:多模型绑定

是否可以使用某种 Multibinders,像这样?

当我还配置了这样的默认活页夹时:

我想要的是拥有 DataAnnotationsBinder 的好处(它验证字符串长度、正则表达式等的数据)以及设置字段值的自定义活页夹。

我不能为此只编写 1 个活页夹,因为 iam 使用 EntitiyFramework 并与 DataAnnotations 结合使用它会导致如下构造:

0 投票
2 回答
3305 浏览

asp.net-mvc - 我如何使用 ModelBinder 来更正用户可以看到的值?

我想为 ASP.NET MVC 编写一个模型绑定器,它将更正用户可见的值。也许它会将值的首字母大写,修剪字符串等。

我想将此行为封装在模型绑定器中。

例如这里是一个TrimModelBinder修剪字符串。(取自这里)

这会将值设置到模型中,但是当页面重新显示时,原始值将保持不变(因为它们处于 ModelState 中)。

我只想将修剪后的值重新显示给用户。

有很多方法可以覆盖 - 比如OnPropertyValidatedOnPropertyValidating等等。

我可能可以让它工作,但如果我覆盖错误的方法,我不想产生一些意想不到的副作用。

当我生成视图时,我宁愿不尝试执行 Trim() 或任何逻辑。我想将这个逻辑完全封装在模型绑定器中。

0 投票
1 回答
2156 浏览

asp.net-mvc - asp.net mvc:TryUpdateModel 返回值还是 ModelState.IsValid?

在我的活页夹中进行验证,我想知道是否需要检查返回值。在下面的选项 1 中,案例 1 和案例 2 是否会有所不同?TryUpdateModel 似乎不可能返回 true,但 ModelState.IsValid 为 false。

选项1:

选项 2:

0 投票
1 回答
1253 浏览

asp.net-mvc - ASP.NET MVC 1.0 - 字典的模型绑定器

我有一个包含字典的ViewModel类(以及与此问题无关的其他内容):

然后我有几个处理字典的GET/动作。POSTGET操作将首先Dictionary<int, string>使用数据库中的一些数据填充 ,然后返回View

  • .Keys 将在隐藏字段上;和
  • .Values 将在文本区域上供用户编辑。

然后,用户将提交此表单,调用该POST操作。它将尝试处理输入(过程无关紧要)。Key/Value对有些是有效的,有些是无效的。

如果存在无效对,则该POST操作将重建ViewModel,但这次字典应仅包含无效对,并将重新显示相同的视图以供用户修复并再次尝试提交。

问题:实现这一目标的最简单和最干净的方法是什么?

到目前为止,我在控制器中拥有的(工作正常):

和观点:

问题是,为了取悦模型绑定器,我必须在视图上使用顺序 ID 命名我的字段。但我还必须遍历 Dictionary 以提取键/值对,因此它不能是for (var i = 0; i < Model.Data.Count; i++) {...}循环。

0 投票
1 回答
640 浏览

asp.net-mvc - DDD 友好的 ASP.NET MVC 模型绑定器?

我正在考虑自定义模型绑定器的值,该绑定器可以使我的域层中定义的不可变值对象实例化。然后我可以将它们通过堆栈并将它们设置在适当的实体上。有人试过吗?有运气吗?认为这是一个愚蠢的想法?