System.StackOverflowExceptionが処理されませんでした(MVC Model BINDING)
-
06-07-2019 - |
質問
Model Binderを使用してフォームをポストバックすると、このエラーが発生し始めました。問題をテストするために、モデルの1つの文字列プロパティにポストバックを減らしましたが、それでもオーバーフローエラーが発生します。誰がこれを引き起こすのかを提案できますか?
更新 問題は、外部キーであるモデルのプロパティに関連しているようです。このキーが削除されると、バインディングが機能します。バインドを行い、外部キー関係を含めるにはどうすればよいですか?
解決
これはいくつかの方法で修正できます。 1つの方法は、このようなものを試すことです。
public ActionResult AddProduct([Bind(Exclude = "Category")]Product product) { }
これは、モデルバインダーにカテゴリ(FKプロパティ)のバインドを試行しないように指示します。これは既知の問題であり、MVCチームはすでにRC用に修正しています。
除外リストをUpdateModel / TryUpdateModelおよびバインド属性を追加した任意の場所に渡すこともできます。
他のヒント
通常、スタックオーバーフローは無限再帰が原因です。スタックトレースを調べて、同じ関数(または関数のグループ)が繰り返し表示されるかどうかを確認します。これは、再帰関数がベースケースに到達しないことを示します。
所属していません StackOverflow