我正在将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]); }
如何补救?
实现在ASP.NET MVC 1和2之间发生了更改,用于 IValueProvider .
IValueProvider
尝试使用 GetValue() 方法,而不是通过索引引用它。
GetValue()
collection.ToValueProvider().GetValue(error.PropertyName)