2010-08-18 80 views
8

我有一個應用程序,我一直使用xVal很長一段時間。它最近更新爲MVC 2.xVal和ASP.Net MVC 2 AddModelStateErrors問題

我在我的域模型上使用標準DataAnnotations屬性,這些屬性還實現了調用DataAnnotationsValidationRunner的「Validate()」方法。如果有任何錯誤,則該方法拋出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)at System.Web.Mvc.Html.ValidationExtensions.ValidationMessage( HtmlHelper htmlHelper,String modelName,String validationMessage,IDictionary`2 htmlAttributes)at ASP.views_user_edit_aspx .__ RenderContent2 ... {snipped,因爲它從那裏是標準的}

我已經看了xVal的方法和HtmlHelper擴展,我似乎無法弄清楚發生了什麼。

任何想法?

+0

你有沒有找到解決這個問題的辦法?我們有一個類似的問題,升級MVC 1 => MVC 3 – Dave 2011-04-28 11:36:31

回答

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重定向中解決了這個問題! – 2011-05-09 13:46:53