我正在使用 MVC 2 RC。我有一个自定义模型 Binder ,用于迭代 MVC 1.0 中发布的表单值,如下所示:
var values = bindingContext.ValueProvider.Where(x => x.Key.StartsWith("prefix"));
foreach (var value in values) { /* do something */ }
在版本 2 中,我不能再这样做了。 Apparently there are new implementations of IValueProvider that come with ASP.NET MVC 2.0.我想我需要以某种方式在我的自定义模型联编程序中使用 FormValueProvider,但我不知道如何使用它。
最佳答案
ValueProvider 似乎是一个读/写属性。你试过这个吗:
var formValueProvider = new FormValueProvider(controllerContext);
bindingContext.ValueProvider = formValueProvider;
我讨论了这个 on another question as well但老实说,我自己还没有用过它。
编辑: 我不确定这种情况是否有好的解决方案,但我想您最终可能会访问 controllerContext.HttpContext.Request。我知道这感觉不对,但如果您的需求如此之低,我怀疑这是达到这些需求的唯一途径。
关于c# - 如何在 ASP.NET MVC 2 中的自定义模型绑定(bind)器中获取 FormValueProvider 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2187637/