我在我的域模型上使用标准的DataAnnotations属性,它还实现了一个调用DataAnnotationsValidationRunner的“Validate()”方法.如果有任何错误,该方法将抛出RulesException.
在我的控制器中,我使用了RulesException的非常典型的catch
catch (RulesException e) { e.AddModelStateErrors(ModelState,"err"); }
所有典型的东西,几乎直接来自示例,直到最近工作正常(我怀疑问题始于我的MVC1时 – > MVC2更新.
所以问题是:当调用AddModelStateErrors方法时,我得到一个“System.EntryPointNotFoundException:找不到入口点”,它来自System.Web上的System.Collections.Generic.ICollection1.get_Count(). System.Web.Mvc.Html.ValidationExtensions.ValidationMessage(HtmlHelper htmlHelper,String modelName,String validationMessage,IDictionary`2 htmlAttributes)中的Mvc.Html.ValidationExtensions.ValidationMessageHelper(HtmlHelper htmlHelper,ModelMetadata modelMetadata,String expression,IDictionary2 htmlAttributes)在ASP.views_user_edit_aspx .__ RenderContent2 … {snipped,因为它是那里的标准}
我已经查看了xVal方法的代码和HtmlHelper扩展,我似乎无法弄清楚发生了什么.
有任何想法吗?
解决方法
<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/> <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/> </dependentAssembly> </assemblyBinding> </runtime>
或MVC3:
<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/> <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0"/> </dependentAssembly> </assemblyBinding> </runtime>