1

に問題がありList<SelectListItem>ます。コードがヒットするたびに、次のように表示foreachされます。

object reference not set to an instance of an object.

私は何かを見逃していますか、それともそこで失敗する理由を誰かが説明できますか?

public ActionResult HammerpointVideos(string category, string type)
{
    var stuff = Request.QueryString["category"];

    var ItemId = (from p in entities.EstimateItems
                  where p.ItemName == category
                  select p.EstimateItemId).FirstOrDefault();

    var Videos = (from e in entities.EstimateVideos
                  where e.EstimateItemId == ItemId
                  select new Models.HammerpointVideoModel
                  {
                      VideoName = e.VideoName,
                      VideoLink = e.VideoLink
                  }).ToList();

    var model= new Models.HammerpointVideoListModel();
    List<SelectListItem> list = model.VideoList;

    foreach (var video in Videos)
    {
        list.Add(new SelectListItem()
                    {
                        Selected=false,
                        Value = video.VideoLink,
                        Text = video.VideoName
                    });

    }
}
4

2 に答える 2

6

ViedoList前に初期化されていますか?そうではないと思います。新しいリストを作成して項目を追加し、その後モデルに参照を追加します。

var model = new Models.HammerpointVideoListModel();
List<SelectListItem> list = new List<SelectListItem>();

foreach (var video in Videos)
{
    list.Add(new SelectListItem()
                {
                    Selected=false,
                    Value = video.VideoLink,
                    Text = video.VideoName
                });

}

model.VideoList = list;
于 2013-06-18T12:46:43.903 に答える
0

おそらく、クラスVideoListのパラメーターなしのコンストラクターで初期化していないHammerpointVideoListModelため、空のリストではありません。

置く

VideoList = new List<SelectedListItem>();

コンストラクターで。

于 2013-06-18T12:44:41.503 に答える