1

私は次のviewModelを持っています:

namespace Flashcard.Models
{
    public class CreateCardViewModel
    {
        [HiddenInput(DisplayValue = false)]
        public int SetId { get; set; }

        [Required]
        public ICollection<Side> Sides { get; set; }

    }
}

カードコントローラーに対してこのViewModelを使用します。

public class CardController : Controller
    {
        //
        // GET: /Card/

        public ActionResult Create(int setId)
        {
            var model = new CreateCardViewModel();

            var side = new Side() {Content = "Blank Side"};


            model.SetId = setId;
            model.Sides.Add(side);
            return View(model);
        }

    }

ただし、Createアクションを呼び出すと、model.Sidesがnullであるため、nullReferenceExceptionが発生します。これは、空と同じではないようです。ViewModelで空のICollectionサイドを作成したと思います-コントローラーでnullになるのはなぜですか?

状況によっては、カードは1つまたは複数の面を持つことができます。カードが作成されるたびに常にサイドを追加しようとしています。

4

1 に答える 1

0

Collection次のように、を開始してオブジェクトのプロパティに割り当てる必要があります。

public class CardController : Controller
{
    //
    // GET: /Card/

    public ActionResult Create(int setId)
    {
        var model = new CreateCardViewModel();

        var side = new Side() {Content = "Blank Side"};


        model.SetId = setId;


        model.Sides = new List<Side>();

        model.Sides.Add(side);
        return View(model);
    }

}

コレクションがnullです。1つを作成し、小道具に割り当てます。

于 2013-02-10T04:05:07.353 に答える