這個問題是關于更新資料庫表中的當前記錄并添加新記錄。
在我的 ASP.NET MVC 應用程式中,從視圖中我已將相關資料傳遞給控制器??,這是我的資料庫表并突出顯示要更新的相關記錄。

這是我的控制器,在那里可以看到從視圖傳遞過來的資料。


因此,如圖 1 所示,ApprovalProcess_Id 40應更新為今天的日期,approval_status 應為 1,Approval_note 也應更新。如您所見,圖 3 注釋資料已經存在。所以 Approval_ProcessId 是我單獨獲得的臨時資料。
int tempAId = int.Parse(TempData.Peek("CurrentId").ToString());
我像圖片一樣嘗試的方式也沒有更新,我想更新當前記錄的注釋、批準狀態、日期時間,并且需要添加具有相同tempAID 的新記錄以及包含新批準人ID的模型。
這是我當前的代碼
public ActionResult ApproveRequest(ApprovalProcess approvalProcess)
{
if (ModelState.IsValid)
{
if (approvalProcess.Approvers != null)
{
int tempAId = int.Parse(TempData.Peek("CurrentId").ToString());
ApprovalParty approvalParty = new ApprovalParty();
approvalParty.Approved_Date = DateTime.Now;
approvalParty.Approved_Note = approvalProcess.Approvers.ToList().First().Approved_Note;
approvalParty.Approve_Status = true;
}
//approvalProcess approvalProcess1 = new approvalProcess();
//approvalParty.Approved_Date = DateTime.Now;
//approvalParty.Approve_Status = true;
//ApprovalParty model = new ApprovalParty();
////approvalParty.ApprovalProcess_Id = tempAId;
//approvalParty.Approved_Note = model.Approved_Note;
//db.SaveChanges();
return RedirectToAction("Index");
}
else
{
return View("Index");
}
}
uj5u.com熱心網友回復:
您根本沒有對資料庫進行任何更新,也就是說您正在更新世界上的所有屬性,但沒有任何屬性被推回您的資料庫。
這是一個將更新推送到資料庫的示例:
public ActionResult ApproveRequest(ApprovalProcess approvalProcess)
{
if (ModelState.IsValid)
{
int.TryParse(TempData.Peek("CurrentId").ToString(), out int tempAId);
// This pulls the record from your db so that entity framework can track and update it.
var approvalParty = db.ApprovalParties.Find(tempAId);
approvalParty.Approval_Date = DateTime.Now;
// This will error because you'd need to select a particular Approver in the list to determine which Approved_Note to use.
// Should be something like Approvers.ToList()[0].Approved_Note
approvalParty.Approved_Note == approvalProcess.Approvers.ToList().Approved_Note;
approvalParty.Approve_Status = true;
// Pushes the updated data to the database.
db.SaveChanges();
}
}
要添加新的 ApprovalParty 記錄(我只是假設這就是您所說的內容,您需要將屬性值映射到新的 ApprovalParty 并將其添加到db.ApprovalParties:
var approvalParty = new ApprovalParty
{
Approved_Date = DateTime.Now,
Approved_Note = approvalProcess.Approvers.ToList()[0].Approved_Note,
Approved_Status = true;
};
db.ApprovalParties.Add(approvalParty);
db.SaveChanges();
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/352642.html
