Проблема xVal и ASP.Net MVC 2 AddModelStateErrors - PullRequest
8 голосов
/ 18 августа 2010

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

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

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

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

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

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

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

Любые идеи

1 Ответ

6 голосов
/ 28 апреля 2011

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