xVal和ASP.Net MVC 2 AddModelStateErrors问题

rea*_*Jim 8 validation asp.net-mvc xval asp.net-mvc-2

我有一个应用程序,我已经成功使用xVal很长一段时间了.它最近更新为MVC 2.

我在我的域模型上使用标准的DataAnnotations属性,它还实现了一个调用DataAnnotationsValidationRunner的"Validate()"方法.如果有任何错误,该方法将抛出RulesException.

在我的控制器中,我使用了RulesException的非常典型的catch

catch (RulesException e)
{
    e.AddModelStateErrors(ModelState, "err");
}
Run Code Online (Sandbox Code Playgroud)

所有典型的东西,几乎直接来自示例,直到最近工作正常(我怀疑问题始于我的MVC1 - > MVC2更新.

所以问题是:当调用AddModelStateErrors方法时,我1.get_Count() at System.Web.Mvc.Html.ValidationExtensions.ValidationMessageHelper(HtmlHelper htmlHelper, ModelMetadata modelMetadata, String expression, String validationMessage, IDictionary在System.Web.Mvc 收到一个"System.EntryPointNotFoundException:找不到入口点",它来自System.Collections.Generic.ICollection 2 htmlAttributes) ASP.views_user_edit_aspx.上的.Html.ValidationExtensions.ValidationMessage(HtmlHelper htmlHelper,String modelName,String validationMessage,IDictionary`2 htmlAttributes.)_ RenderContent2 ... {snipped,因为它是那里的标准}

我已经查看了xVal方法的代码和HtmlHelper扩展,我似乎无法弄清楚发生了什么.

有任何想法吗?

Jul*_*ard 6

有同样的问题但只是解决了它:将以下内容添加到web.config或app.config,以便转移到MVC2:

<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>
Run Code Online (Sandbox Code Playgroud)

或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>
Run Code Online (Sandbox Code Playgroud)