我試圖實現這種mechanizm實現的通用模型無關的控制器類:ASP.NET MVC,實體框架:用行動
型號有位字段:is_active
,所以我用它來切換主要形式的可見性。在DC型的動作是這樣的:
public ActionResult Toggle(int id)
{
Country country = _db.Countries.Find(id);
country.is_active = country.is_active == null ? true : !country.is_active;
_db.SaveChanges();
return RedirectToAction("Index");
}
我想我的管理員查找控制器從通用類派生和使用實施從它像撥動共同行動。
我已經創建了具有ActionResult Toggle(int id)
的ITogglable接口,所以我在特定的控制器(CountryController : Controller, ITogglable
)中實現它,但我必須每次都實現它。相反,我會更喜歡我的CountryController,RegionController等從一個通用類派生(即Togglable
)具有這些樣的方法已經等來實現:
public virtual ActionResult Toggle(int id)
{
CurrentModelTypeUsedInController lookup = _db.CurrentModelTypeUsedInController.Find(id);
lookup .is_active = lookup .is_active == null ? true : !lookup.is_active;
_db.SaveChanges();
return RedirectToAction("Index");
}
這甚至可能嗎?我不知道如何使它查找無關,所以我不必每次都提供CurrentModelTypeUsedInController
的類型。
我只想說得出,你真棒! –