问题标签 [custom-model-binder]

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

asp.net-mvc - Google Chrome 客户端的 ASP.NET MVC 路由问题

我的 Silverlight 4 应用程序托管在 ASP.NET MVC 2 Web 应用程序中。当我使用 Internet Explorer 8 浏览时它工作正常。但是 Google Chrome(版本 5)找不到 ASP.NET 控制器。具体来说,以下 ASP.NET 控制器适用于 Chrome 和 IE。

如果我取消注释 [OutputCache] 属性,则它适用于 IE,但不适用于 Chrome。此外,我将自定义模型绑定与控制器一起使用,因此如果我编写以下内容:

它也适用于 IE,但同样不适用于 Chrome,它给我的错误消息是找不到资源。当然,我将 IIS 6 配置为通过 aspnet_isapi.dll 处理所有请求,并且我已经在我的 Web 应用程序的 Global.asax 中 Application_Start() 方法中注册了自定义模型绑定器。有人可以解释一下可能是什么原因吗?谢谢你。

0 投票
1 回答
2531 浏览

asp.net-mvc - MVC 2 中带有自定义模型绑定器的自定义验证属性

对于我包含的代码量,我深表歉意。我试图将其保持在最低限度。

我正在尝试在我的模型上使用自定义验证器属性以及自定义模型活页夹。Attribute 和 Binder 分别工作得很好,但如果我两者都有,那么 Validation Attribute 就不再起作用了。

这是我为便于阅读而截取的代码。如果我在 global.asax 中遗漏了代码,则会触发自定义验证,但如果我启用了自定义活页夹,则不会触发。

验证属性;

我的模型中属性的使用;

自定义模型绑定器;

全球阿萨克斯;

0 投票
1 回答
428 浏览

asp.net-mvc - 自定义模型绑定器

我想创建一个自定义模型绑定器来验证有界模型。我已经找到了几个这样的例子,它应该可以正常工作。但如果模型中有错误,我也希望能够将用户发送回他来自的页面。

这是可能的吗?这样做有什么明显的副作用吗?

我想要实现的是控制器总是得到有效的命令,所以我不需要在 action 方法中检查 model.IsValid() 。

0 投票
2 回答
1373 浏览

asp.net-mvc - 如何从自定义 ModelBinder 中调用 UpdateModel?(MVC)

我正在为我的模型中的复杂类型创建一些自定义绑定器。我的模型由具有自己单独的活页夹的对象组成。我希望基础对象完成其肮脏的工作,然后通过传递给标准 ModelBinder 路由来填充它封装的复杂对象。我该怎么做呢?

出于说明目的,我创建了一个非常简单的示例。

假设我的模型包含这些对象。

对于这些模型中的每一个,我都有以下活页夹。并不是说 PersonBinder 需要填充 PhoneNumber 但不想复制 PhoneNumber 活页夹中的代码。它如何委托给标准的 Binder 路由?

当然,我已经在 Global.asax.cs 文件中注册了我的 ModelBinders。

谢谢,

贾斯汀

0 投票
2 回答
2198 浏览

entity-framework - 在 ASP.NET MVC 解决方案中使用实体框架保存下拉列表选择

我正在寻找有关下拉列表选择的体面模式和 POCO EF 选择持久性的建议。

我的视图模型中有一个列表,IEnumerable<Country>其中 Country 是通过 EF 加载的 POCO。视图模型上有一个 Address 属性,它在其 Country 属性上采用当前或用户选择的值。在视图中,我通过 Html.DropdownListFor() 显示这些:

到目前为止一切都很好,并且默认 ModelBinder 为我提供了一个填充了 Address.Country 的视图模型,这一切都适用于回发。但是 Address.Country 当然只填充了具有默认模型绑定的 Id 字段。

尝试通过 EF 将地址更新发送回数据库会失败,因为这被视为一个新对象,它没有加载完整的对象图,只有 Id 集。

现在我可以通过在基于所选 ID 保存之前将完整的 Country 对象从 db 加载到回发时的 Address.Country 属性中来解决此问题。但是对于一个简单的对象图之外的任何东西,这似乎都是一项艰巨的工作。

我能想到的最“优雅”的解决方案是 Country 的自定义模型绑定器,但这需要模型绑定器了解用于检索完整 EF 对象的存储库,这对我来说似乎不合适。我还必须对下拉列表中使用的所有其他实体重复此操作。

希望这是有道理的,任何关于其他人如何做到这一点的反馈将不胜感激。

0 投票
1 回答
107 浏览

asp.net-mvc-2 - 在模型绑定期间获取 Action

有没有办法在模型绑定阶段获取动作并读取任何属性?

场景是这样的:

我为某种数据类型设置了默认模型绑定器,但取决于它的使用方式(通过操作上的属性控制),我需要忽略一组数据。

我可以在控制器上下文中使用 RouteData 并查看操作名称,我可以使用它来获取数据,但想知道该信息是否已经可用。

此外,如果有问题的操作是异步操作,他们会在查找它时涉及更多处理......

0 投票
3 回答
8723 浏览

asp.net-mvc - ASP.Net MVC ModelBindingContext 类——它的模型值是如何填充的?

我对模型绑定器如何在 ASP.Net MVC 中工作感到有些摸不着头脑。

具体来说,BindModel()方法有一个ModelBindingContext参数,里面保存着模型名称和类型,但是我不明白ModelBindingContext是怎么接收这些值的。

必须从发布的表单值或查询字符串参数或其他数据源填充 MVC 模型。但是什么机制决定了传递给 ModelBindingContext 的模型类型,以及如何选择一种模型类型而不是另一种模型类型,甚至(比如说)一个包含各个发布值的简单列表?

在我看来,ModelBindingContext“知道”它正在处理的模型类型,我不确定它来自哪里或填充它所涉及的工作流。

0 投票
1 回答
2607 浏览

validation - 自定义模型绑定器中的 DataAnnotations 验证

我已经在我的 MVC 项目中为 List 编写了一个自定义模型绑定器,但是我现在陷入了如何让这个绑定器针对我的 DataAnnotations 验证属性进行验证的问题。

我在互联网上找到了一些讨论类似场景的帖子,但我找不到任何适用于我的特定场景的东西。

模型粘合剂代码:

我的模型元数据:

RequiredIfTrue 属性来自MVC Foolproof Validation库。显然它还不够万无一失!

0 投票
2 回答
1425 浏览

asp.net-mvc - ASP.NET MVC - ID 字段的自定义模型绑定器

我有以下实体:

现在在我的添加类别视图中,我有一个文本框来输入 SectionID 例如:

我想创建一个自定义模型绑定器以具有以下逻辑:

如果模型键以 ID 结尾并且有一个值(一个值被插入到文本框中),则将父对象(本例中的 Section)设置为 Section.GetById(value entered) 否则将父对象设置为 null。

我真的很感谢这里的帮助,因为这让我困惑了一段时间。谢谢

0 投票
1 回答
983 浏览

asp.net - DropDownList 的自定义模型绑定器未选择正确的值

我创建了自己的自定义模型绑定器来处理在我的视图中定义的 Section DropDownList :

这是我的模型活页夹:

现在在我的控制器中,我可以说:

这很好地验证并在更新模型时为该部分分配正确的值,但是如果另一个属性未验证,则它不会选择正确的值。

如果有人能告诉我如何做到这一点,我将不胜感激。谢谢