开发者

How to get FormValueProvider instance in a Custom Model Binder in ASP.NET MVC 2

开发者 https://www.devze.com 2022-12-19 12:40 出处:网络
I\'m using the MVC 2 RC. I have a custom model binder that us开发者_开发问答ed to iterate over posted form values in MVC 1.0 like this:

I'm using the MVC 2 RC. I have a custom model binder that us开发者_开发问答ed to iterate over posted form values in MVC 1.0 like this:

var values = bindingContext.ValueProvider.Where(x => x.Key.StartsWith("prefix"));    
foreach (var value in values) { /* do something */ }

In version 2, I can't do this anymore. Apparently there are new implementations of IValueProvider that come with ASP.NET MVC 2.0. I think I need to somehow use FormValueProvider in my custom model binder, but I don't know how to get at it.


ValueProvider seems to be a read/write property. Have you tried this:

var formValueProvider = new FormValueProvider(controllerContext);
bindingContext.ValueProvider = formValueProvider;

I discussed this on another question as well but to be honest I haven't used it myself.

Edit: I am not sure if there is a good solution for this scenario, but I guess you might end up accessing controllerContext.HttpContext.Request. I know it doesn't feel right but if your needs are so low level I suspect that's the only way to get to them.

0

精彩评论

暂无评论...
验证码 换一张
取 消