質問

かなり長い間XValを正常に使用しているアプリケーションがあります。最近MVC 2に更新されました。

ドメインモデルに標準のData Annotations属性を使用して、Data AnnotationsValidationRunnerを呼び出す「Validate()」メソッドも実装しています。エラーがある場合、その方法はルールセックスを投げます。

私のコントローラーでは、ルールセックスのために非常に典型的なキャッチを使用しています

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

例からほぼまっすぐに、最近まで正常に動作するすべての典型的なもの(MVC1-> MVC2アップデートの時点で問題が始まったと思われます。

問題は次のとおりです。AddModelStateErrorsメソッドが呼び出されると、system.collections.generic.icollectionから来ている「system.entrypointnotfoundexception:エントリポイントが見つかりませんでした」を取得します。1.get_Count() at System.Web.Mvc.Html.ValidationExtensions.ValidationMessageHelper(HtmlHelper htmlHelper, ModelMetadata modelMetadata, String expression, String validationMessage, IDictionary2 htmlattributes)at System.web.mvc.html.validationextensions.validationMessage(htmlhelper htmlhelper、string modelname、string validationmessage、idictionary`2 htmlattributes)

XVALのメソッドのコードとHTMLHELPER拡張機能の両方を調べましたが、何が起こっているのかを理解できないようです。

何か案は?

役に立ちましたか?

解決

同じ問題がありますが、それを解決しました。MVC2に移動するために、以下をweb.configまたはapp.configに追加します。

<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>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top