我正在使用MVC 2 RC。我有一个自定义模型绑定器,该绑定器用于遍历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。我知道这感觉不对,但是如果您的需求如此之低,我怀疑那是达到他们的唯一方法。