Проблема 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, IDictionary
2 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>