我正在寻找一种方法来制作可由多个控制器继承的通用操作方法,因此我不必在MVC中为不同的控制器和表格重复相同的方法。我认为这将适用于我必须经常为多个班级所做的许多CRUD内容。带数据库调用的通用操作方法mvc
例如,这里就是我想复制的代码:
public ActionResult ToggleQC(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
BACTERIA_EVW bacteria = db.BACTERIA_EVW.Find(id);
if (bacteria == null)
{
return HttpNotFound();
}
//add/remove QC status (switch to whichever one it isn't right now)
if (bacteria.QCOn == null) //if it hasn't been QCed
{
bacteria.QCOn = DateTime.Now;
bacteria.QCBy = User.Identity.Name;
}
else //if it has been QCed and they are undoing it
{
bacteria.QCBy = null;
bacteria.QCOn = null;
}
//save changes
db.Entry(bacteria).State = EntityState.Modified;
db.SaveChanges();
//return updated QC status partial
return PartialView("_QCStatus", bacteria);
}
我需要做同样的事情在化学控制,但我宁愿不重复整个事情,只是改变一个部分。是否可以将模型类型作为参数传递给方法,以取代BACTERIA_EVW
?我会怎么做?
我很抱歉,如果这是真的基本的东西;我可能不知道寻找合适的条款。我已经搜索了通用操作方法,但我还没有找到任何答案,虽然有关于通用控制器的一些东西 - 我是否需要制作一个通用控制器类来包含这样的方法?
非常感谢。
你可能需要的是一个通用的方法https://msdn.microsoft.com/en-us/library/twcad0zb.aspx从你的控制器调用它 – Shekhar
谷歌“抽象方法” – Steve
@Shekhar需要超过只是“阅读泛型”来处理“db。* BACTERIA_EVW * .Find”或保存更新... –