Хорошо, я боролся с этим какое-то время.Общие свойства данных в объектах данных ASP.NET MVC 2
У меня есть стандартный проект MVC2 и используйте EF4 для доступа к объектам данных. Многие мои объекты данных (и, следовательно, таблицы базы данных) имеют два общих поля: UpdateUserAccountID и UpdateDate.
В каждой из моих контроллеров, я в настоящее время настройки этого поля вручную в пределах каждого контроллера на Edit действия:
// 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);
}
}
проблема, я хочу, чтобы обновить эти два поля в одном месте, независимо от того, тип контроллера. Я использую шаблон репозитория/IRepository для своих объектов данных. Я также установил BaseController, так как я думал, что могу передать свой объект mode в приведенном выше примере общей функции в базовом контроллере, чтобы установить эти два поля. Но я не мог понять этого, и общая функция не знает об этих конкретных областях.
Должен ли я создавать базовый класс для своих репозиториев? Я не могу предусмотреть, как это будет работать в рамках MVC. В webforms у меня просто был бы интерфейс, который все мои модели реализуют с общими полями, но я, похоже, не вписываюсь в подход MVC.
Любая помощь относительно подхода, который будет принят, будет отличным.
Это решение работает отлично. Большое спасибо! – Thomas
Добро пожаловать, я рад, что это помогло :) –