在asp.net MVC中绕过模型绑定器以获取复杂的动作参数?

时间:2009-03-16 22:07:16

标签: asp.net-mvc binding

是否存在可以关闭复杂动作参数的模型绑定的属性?

我的场景是这样的:我正在使用Linq to SQL,但使生成的类实现接口。例如,IUser。我的一些控制器操作接受IUser参数,我的一些视图绑定IUser模型,但我不希望默认模型绑定器构造它。我使用动作过滤器。这背后的想法是,如果某个操作需要用户详细信息,则操作过滤器会在调用操作之前从数据库中获取该操作。

为了解决DefaultModelBuilder被触发时发生的错误,我创建了一个null模型绑定器,它只是从CreateModel返回null。

ModelBinderDictionary binders = System.Web.Mvc.ModelBinders.Binders;
binders[typeof(IUser)] = new NullModelBinder();

1 个答案:

答案 0 :(得分:0)

遵循架构并创建一个IUser活页夹来执行动作过滤器正在执行的操作会不会更简单?目前,您正在变换动作过滤器以执行并非完全打算执行的操作,并且在此过程中您还忽略了专门为执行您要实现的目标而设计的扩展点(以特定方式创建参数实例)

您是否有充分理由在动作过滤器中创建IUser而不是使用自定义活页夹?

相关问题