ホームページ > バックエンド開発 > C++ > ドロップダウンリストが「System.Int32」対「IENUMERABLE」エラーを投げるのはなぜですか?

ドロップダウンリストが「System.Int32」対「IENUMERABLE」エラーを投げるのはなぜですか?

Susan Sarandon
リリース: 2025-02-03 03:06:10
オリジナル
647 人が閲覧しました

Why Does My Dropdown List Throw a

トラブルシューティング "System.int32" vs. "Ienumerable" Errors in dropdown lists

ドロップダウンリストを使用してフォームを送信すると、タイプの不一致を示すエラーが発生する場合があります。 ViewDataIEnumerable根本原因:nullカテゴリリストSystem.Int32

これは通常、ビューモデル内のプロパティ(例:)がフォームが送信されたときに

になるために発生します。 このプロパティに依存して、ドロップダウンリストを入力します。

CategoryListソリューション:POSTメソッドのカテゴリリストを再駐在させますProjectVM解決策は、ビューを返す前に、コントローラーのポストアクション方法内のnullプロパティを明示的に再貯めているViewDataです。 これにより、正しい

データが

投稿方法を変更する方法:

この行を追加すると、

を再作成し、CategoryListに割り当てます。 これにより、必要なヘルパーに必要なデータを提供します。 IEnumerableViewDataそれがどのように機能するか:Viewdataとselectlist

<code class="language-csharp">public ActionResult Create(ProjectVM model)
{
    if (!ModelState.IsValid)
    {
        // Repopulate the CategoryList
        model.CategoryList = new SelectList(db.Categories, "ID", "Name"); 
        return View(model);
    }
    // ... (Your existing code to save the model and redirect) ...
}</code>
ログイン後にコピー
ヘルパーメソッド(および

)は、適切なSelectListデータを見つけようとします。 A model.CategoryListを直接受信しない場合、プロパティ名( 'CategoryId'など)を使用してIEnumerableのデータを探します。 DropDownListFor()アイテムが

にキャストできない場合、タイプの不一致エラーが発生します。 POSTメソッドで明示的に設定することにより、この問題をバイパスします。

以上がドロップダウンリストが「System.Int32」対「IENUMERABLE」エラーを投げるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート