8

かなり長い間 xVal をうまく使用してきたアプリケーションがあります。最近、MVC 2 に更新されました。

ドメイン モデルで標準の DataAnnotations 属性を使用します。これは、DataAnnotationsValidationRunner を呼び出す「Validate()」メソッドも実装します。エラーがある場合、そのメソッドは RulesException をスローします。

私のコントローラーでは、RulesException に対して非常に典型的な catch を使用します。

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, IDictionary2 htmlAttributes) at System.Web.Mvc .Html.ValidationExtensions.ValidationMessage(HtmlHelper htmlHelper, String modelName, String validationMessage, IDictionary`2 htmlAttributes) at ASP.views_user_edit_aspx.__RenderContent2...{省略、そこから標準であるため}

xVal のメソッドのコードと HtmlHelper 拡張機能の両方を調べましたが、何が起こっているのかわかりません。

何か案は?

4

1 に答える 1

6

同じ問題がありますが、解決しました: 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>
于 2011-04-28T12:13:16.810 に答える