不要将域模型用于您的视图。创建一个特定于您的视图的新POCO类。一般来说,我们称之为ViewModel。
public class ChamodoVM
{
[Required]
public string ChamdoName { set;get;}
[Required]
public string InteracoName { set;get;}
//other properties here as needed
}
现在在你的GET
行动中创建这个类的一个对象并传递给View
方法。
public ActionResult Create()
{
var vm=new ChamodoVM();
return View(vm);
}
使您的视图强类型化到 ViewModel 类。
@model ChamodoVM
@using(Html.BeginForm())
{
@Html.LabelFor(x=>x.ChamodoName)
@Html.TextBoxFor(x=>x.ChamodoName)
@Html.LabelFor(x=>x.InteracoName)
@Html.TextBoxFor(x=>x.InteracoName)
<input type="submit" />
}
当用户提交表单时,从视图模型中读取值并将其分配给您的域模式对象并保存。感谢 MVC 模型绑定。:)
[HttpPost]
public ActionResult Create(ChamodoVM model)
{
if(ModelState.IsValid)
{
var domainModel=new Chamodo();
domainModel.Name=model.ChamodoName;
domainModel.Interaco=new Interaco();
domainModel.Interaco.Name=model.InteracoName;
yourRepositary.SaveClient(domainModel);
//If saved successfully, Redirect to another view (PRG pattern)
return RedirectToAction("ChamodoSaved");
}
return View(model);
}