0
我有一個控制器(歷史)中的創建操作,它從另一個表(資產)接收ID的參數。交叉控制器更新
一旦視圖返回數據以創建新的歷史記錄,我還需要它更新資產表中的一個字段。
我不確定實現此目標的最佳做法。創建操作可以/應該在另一個控制器上調用編輯操作,還是應該//訪問歷史記錄控制器中的資產模型並使用LINQ表達式進行更新。
我有一個控制器(歷史)中的創建操作,它從另一個表(資產)接收ID的參數。交叉控制器更新
一旦視圖返回數據以創建新的歷史記錄,我還需要它更新資產表中的一個字段。
我不確定實現此目標的最佳做法。創建操作可以/應該在另一個控制器上調用編輯操作,還是應該//訪問歷史記錄控制器中的資產模型並使用LINQ表達式進行更新。
我已工作使用LINQ選項:
public ActionResult Create([Bind(Include = "ServiceID,AssetID,Date,ContractorID,Notes")] ServiceHistory serviceHistory)
{
if (ModelState.IsValid)
{
db.ServiceHistories.Add(serviceHistory);
// Upadte Next Service Date
var query = from r in db.Assets
where r.AssetID == serviceHistory.AssetID
select r;
foreach (Asset r in query)
{
int freq = (int)r.ServiceFrequency;
r.NextServiceDate = DateTime.Now.Date.AddMonths(freq);
}
db.SaveChanges();
return RedirectToAction("Details", "Assets", new { id = serviceHistory.AssetID });
}
ViewBag.AssetID = new SelectList(db.Assets, "AssetID", "Description", serviceHistory.AssetID);
return View();
}
請讓我知道,如果你認爲這是一個黑客位的,有一個更好的辦法。