代码之家  ›  专栏  ›  技术社区  ›  hncl

无法将带[]的索引应用于“system.web.mvc.ivalueprovider”类型的表达式

  •  2
  • hncl  · 技术社区  · 14 年前

    我正在将ASP.NET MVC应用程序转换为ASP.NET MVC 2,并得到以下错误:

    无法将带[]的索引应用于“system.web.mvc.ivalueprovider”类型的表达式

    代码如下:

    public static void AddRuleViolation(this ModelStateDictionary modelState,
                                        RuleViolation error, 
                                        FormCollection collection)
    {
        modelState.AddModelError(error.PropertyName, error.ErrorMessage);
        modelState.SetModelValue(error.PropertyName, 
                                 collection.ToValueProvider()[error.PropertyName]);
    }
    

    如何补救?

    1 回复  |  直到 14 年前
        1
  •  6
  •   p.campbell    14 年前

    实现在ASP.NET MVC 1和2之间发生了更改,用于 IValueProvider .

    尝试使用 GetValue() 方法,而不是通过索引引用它。

    collection.ToValueProvider().GetValue(error.PropertyName)