Проблема xVal и ASP.Net MVC 2 AddModelStateErrors

У меня есть приложение, которое я успешно использую xVal в течение достаточно долгого времени. Это было недавно обновлено до MVC 2.

Я использую стандартные атрибуты DataAnnotations в моих моделях доменов, которые также реализуют метод "Validate()", который вызывает DataAnnotationsValidationRunner. Если есть какие-либо ошибки, этот метод генерирует исключение RulesException.

В моих контроллерах я использую очень типичную ловушку для RulesException

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

Все типичные вещи, почти прямо из примеров, и до недавнего времени работали нормально (я подозреваю, что проблемы начались во время моего обновления MVC1 -> MVC2.

Итак, проблема заключается в следующем: когда вызывается метод AddModelStateErrors, я получаю "System.EntryPointNotFoundException: точка входа не найдена", которая поступает из System.Collections.Generic.ICollection1.get_Count() at System.Web.Mvc.Html.ValidationExtensions.ValidationMessageHelper(HtmlHelper htmlHelper, ModelMetadata modelMetadata, String expression, String validationMessage, IDictionary2 htmlAttributes) в System.Web.Mvc.Html.ValidationExtensions.ValidationMessage(HtmlHelper htmlHelper, String modelName, String validationMessage, IDictionary`2 htmlAttributes) в ASP.views_user_edit_aspx, в качестве стандартного элемента:

Я посмотрел как код для метода xVal, так и расширение HtmlHelper, и я не могу понять, что происходит.

Есть идеи?

1 ответ

Решение

Имеет ту же проблему, но только что решил: добавьте следующее в 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>
Другие вопросы по тегам