我正在使用asp.net MVC项目并在我的视图模型中使用以下代码
public Division ToDivision()
{
Division d = new Division();
Name = this.Name;
Active = this.Active;
return d;
}
然后,在我的控制器中,我有以下方法:
public ActionResult Create(DivisionViewModel divisionViewModel)
{
if (ModelState.IsValid)
{
Division division;
division = divisionViewModel.ToDivision();
_divisionService.Create(division);
return RedirectToAction("Index");
}
return View(divisionViewModel);
}
分部未被分配。为什么是这样?我觉得这很简单,我只是没有看到
答案 0 :(得分:4)
在您的函数ToDivision
中,Name = this.Name
不会执行任何操作,因为它们的值相同。你需要做d.Name = this.Name
。同样适用于Active
。尝试:
public Division ToDivision()
{
Division d = new Division();
d.Name = this.Name;
d.Active = this.Active;
return d;
}
答案 1 :(得分:3)
在您的代码示例中,您似乎希望在具有属性成员分配的方法中使用对象初始化,但是将其分配给Name
成员而不是d.Name
。尝试使用以下初始化程序:
public Division ToDivision()
{
Division d = new Division()
{
Name = this.Name;
Active = this.Active;
}
return d;
}