4

このエラーメッセージは私を狂わせています。

ASP.NET MVC v1.0 で Html.ListBox と Html.DropDownList HtmlHelpers を使用すると、それが発生します。リストへの入力は問題なく動作します - それらを表示することはできますが、選択した値を取得するためにコントローラーに渡された FormCollection を使用してモデルに新しいレコードを作成しようとすると、このエラーが発生します。この問題に関する他のいくつかの投稿に従って、いくつかの異なる構成とコードの配置を試しました-喜びはありません。

これが既知の問題であるかどうかを誰かが教えてくれることを願っています。必要に応じてコードを投稿する必要はありませんが、要求があれば投稿できます。

ああ、提案された回避策/解決策もいいでしょう;-)

ティア!

バーナード。


わかりました、簡単な更新です。以下の応答に 3 つのコメントを投稿し、ここで何をしているかについての詳細を明確にしました。

共有する別の問題があります-ScottGuの代替推奨アプローチを試しました-ModelViewを実装します。したがって、これを行うと、基本的に同じシナリオですが、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というメッセージが表示されます。「タイプ 'IEnumerable' のキー 'Blah' を持つ ViewData アイテムはありません」という同じ場所でエラーが発生しました。

これはおそらくEFの仕組みに関係していると思い始めています...

4

3 に答える 3

2

わかりました、すっごく私は明らかにEF/MVCの初心者です...

この問題は、実際に適切な例外管理を実装することで解決しましたが、例外メッセージ(実際にキャッチを開始したとき)は、「2つのオブジェクトは異なるObjectContextオブジェクトにアタッチされているため、関係を定義できません」でした。そのため、現在、すべてのデータアクセスに同じObjectContextを使用しており、状況は順調に戻っています。

気遣ってくれてありがとう、次回はもっと賢い質問があります-約束してください!

バーナード。

于 2009-05-17T09:39:55.397 に答える
0

検証が行われるポストメソッドに応じて、選択リストを再度バインドできます。たとえば、コントローラーの作成ビュー内でエラーが発生した場合、作成ポスト メソッドでドロップダウン リストを再度バインドできます。

于 2009-10-09T13:34:07.847 に答える
0

これをどのようにコーディングしているかを知らないと、人々が問題のある領域を特定するのが難しくなります。このフォーラムスレッドを読んでください - さらに下に同様のエラーがあります。

http://forums.asp.net/p/1320426/2623986.aspx

于 2009-05-17T08:16:58.807 に答える