2010-08-18 2 views
8

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

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

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

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

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

Так возникает проблема: когда вызывается метод AddModelStateErrors, я получаю «System.EntryPointNotFoundException: точка входа не найдена», которая поступает из System.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 htmlAttributes) в ASP.views_user_edit_aspx .__ RenderContent2 ... {пропущено, так как это стандартный оттуда}

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

Любые идеи?

+0

всегда ли вы найти решение этой проблемы? У нас есть аналогичная проблема с обновлением MVC 1 => MVC 3 – Dave

ответ

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> 
+0

спасибо, это фиксировало проблему, с которой я столкнулся. Я до сих пор не понимаю, почему он исправил это, потому что я ссылался на сборку v2, но включение в v3-перенаправление решило проблему! –

Смежные вопросы