【发布时间】:2010-10-04 15:01:05
【问题描述】:
好的,我已经为此苦苦挣扎了一段时间。
我有一个标准的 MVC2 项目并使用 EF4 访问数据对象。我的许多数据对象(因此也是数据库表)有两个公共字段:UpdateUserAccountID 和 UpdateDate。
在我的每个控制器中,我目前在编辑操作的每个控制器中手动设置此字段:
// POST: /Modes/Edit/2
[HttpPost]
public ActionResult Edit(int id, FormCollection formValues)
{
Mode mode = _repository.GetMode(id);
//Set update flags
mode.UpdateUserAccountID = _userRepository.GetUserID(User.Identity.Name);
mode.UpdateDate = DateTime.Now;
try
{
UpdateModel(mode);
_repository.Save();
return RedirectToAction("Details", new { id = mode.ModeID });
}
catch
{
return View(mode);
}
}
问题是,我想在一个中心位置更新这两个字段,而不管控制器的类型如何。我正在为我的数据对象使用 Repository/IRepository 模式。我还设置了一个 BaseController,因为我认为我可以将上面示例中的“模式”对象传递给基本控制器中的通用函数来设置这两个字段。但是,我想不通,通用函数不知道这些特定的字段。
我应该为我的存储库创建一个基类吗?我无法想象这将如何在 MVC 框架中工作。在 web 表单中,我只需要一个接口,我的所有模型都使用公共字段实现,但我似乎无法将其融入 MVC 方法。
对于采取的方法的任何帮助都会很棒。
【问题讨论】:
标签: asp.net-mvc entity-framework-4