【发布时间】:2011-04-21 14:46:16
【问题描述】:
对于存储库中的每个实体,我都有一个视图模型和一个输入模型。我发现有一个输入模型来存储关系 ID(而不是外部实体)使渲染选择列表更容易,但是您将哪个模型传递给您的编辑视图进行渲染,View Model 或 Input型号?
Category 实体的示例 POST 操作:
[HttpPost]
public ActionResult Edit(CategoryInputModel inputModel)
{
// map inputModel to entity and persist
// ...
}
查看模型:
[HttpGet]
public ActionResult Edit(int id)
{
var category = _unitOfWork.CurrentSession.Get<Category>(id);
var viewModel = Mapper.Map<Category, CategoryViewModel>(category);
return View(viewModel);
}
在这种情况下,编辑视图表单将负责为 POST 操作提供正确的输入模型字段。
输入模型:
[HttpGet]
public ActionResult Edit(int id)
{
var category = _unitOfWork.CurrentSession.Get<Category>(id);
var inputModel = Mapper.Map<Category, CategoryInputModel>(category);
return View(inputModel);
}
从长远来看,哪个更容易维护?
【问题讨论】:
-
您可以添加您的视图和输入模型代码吗?我不知道,但根据我的经验,我总是看到将同一个模型用于两种目的。
标签: asp.net-mvc forms viewmodel