我正在尋找一種方法來製作可由多個控制器繼承的通用操作方法,因此我不必在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」或保存更新... –