8

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

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

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

catch (RulesException e)
{
    e.AddModelStateErrors(ModelState, "err");
}

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

所以问题是这样的:当调用 AddModelStateErrors 方法时,我得到一个“System.EntryPointNotFoundException:找不到入口点”,它来自1.get_Count() at System.Web.Mvc.Html.ValidationExtensions.ValidationMessageHelper(HtmlHelper htmlHelper, ModelMetadata modelMetadata, String expression, String validationMessage, IDictionarySystem.Web.Mvc 的 System.Collections.Generic.ICollection 2 htmlAttributes .Html.ValidationExtensions.ValidationMessage(HtmlHelper htmlHelper, String modelName, String validationMessage, IDictionary`2 htmlAttributes) at ASP.views_user_edit_aspx.__RenderContent2...{被剪掉,因为它是那里的标准}

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

有任何想法吗?

4

1 回答 1

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>

或到 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>
于 2011-04-28T12:13:16.810 回答