我有以下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操作时,我得到一个nullReferenceException,因为model.Sides为null,它似乎与empty不同。我相信我在ViewModel中创建了一个空的ICollection Sides - 为什么它在控制器中为空?
对于某些情况 - 卡片可以有一个或多个侧面。无论何时创建卡,我都会尝试添加Side。
答案 0 :(得分: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);
}
}
您的收藏品为空。制作一个并分配给你的道具。