c# - 如何在 ASP.NET MVC 2 中的自定义模型绑定(bind)器中获取 FormValueProvider 实例

标签 c# .net asp.net asp.net-mvc

我正在使用 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/

相关文章:

c# - 类型转换错误 : Inserting data into Custom MembershipUser

c# - 按钮未按要求触发

c# - 在 64 位 Windows 7 上运行 XNA 游戏时出现问题

c# - 将数据从一个字典加载到另一个字典

c# - 单击列标题时,如何对 DataGridView 中的 DataBound 列进行排序?

.net - 任何类似 JMockit 的 .net 框架,它甚至可以模拟静态类、私有(private)方法等

c# - 在 DropCreateDatabaseIfModelChanges 删除数据库之前进行备份

c# - 如何让这段代码更干?

c# - 开始 ASP.NET 和 C#

javascript - 如何将值传递给 aspx 页面中的 javascript 函数 onClientClick