7

私はモデルを持っています:

public class Auction
{
    public string Title { get; set; }
    public string category { get; set; }
}

そしてコントローラー:

[HttpGet]
public ActionResult UserForm()
{

    var categoryList = new SelectList(new[] { "auto", "elec", "games", "Home" });
    ViewBag.categoryList = categoryList;
    return View();

}

ビューには次の行があります。

<div class="editor-field">
    @Html.DropDownListFor(model =>
        model.category,(SelectList)ViewBag.categoryList)
    @Html.ValidationMessageFor(model => model.category)

</div>

フォームを保存しようとすると、次のエラーが表示されます。

キー 'category' を持つタイプ 'IEnumerable' の ViewData アイテムはありません。説明: 現在の Web 要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこでエラーが発生したかについては、スタック トレースを確認してください。

例外の詳細: System.InvalidOperationException: キー 'category' を持つタイプ 'IEnumerable' の ViewData 項目はありません。

このガイドで行われていることはすべて実行した (または実行しようとした) ため、何が問題なのかわかりません: https://www.youtube.com/watch?v=7HM6kDBj0vE

このビデオは、次のリンク (第 6 章 - 要求内のデータへの自動バインド) にもあります: http://www.lynda.com/ASPNET-tutorials/ASPNET-MVC-4-Essential-Training/109762-2。 html

4

2 に答える 2

-1

私は同じ問題を抱えていました.同じコントローラの同じテーブルデータから別の名前でViewDataを作成しようとすると、そのようなエラーが発生すると思います.古いViewDataを古い関数(メソッド)から新しい関数(メソッド)にコピーしただけです. )同じコントローラーで、それは私にとってはうまくいきました。

于 2015-05-03T04:02:33.573 に答える