終於將審核作業系統執行到尾聲了,但在編寫Detail時碰到很大困難
問題1 Modified無法使用大括弧
因為使用 db.Entry(checkform).State = EntityState.Modified;的關係,
無法用大括弧將參數帶入
因此參數寫入時必須指定table
如下
checkform.ReviewDate = DateTime.Now;
問題2 無法取得之前的資料導致多欄位null
取資料時僅ID跟這次修改的值有帶入,其他資料皆為null。
後來參考Create 寫了一行 CheckForm checkform = db.CheckForm.Find(ID);
便能順利將整份資料帶入
問題3 資料全部讀取修改後,無法存入DB
跟小安確認過後,
修改資料只需針對修改的資料帶入即可,(為了帶入資料我全部都寫了)
而我之前為了將null的資料帶入將table寫反了,
所以導致資料都沒寫入
綜合上述問題解決後
完成Detail的controller如下
--------------------------------------------------------------------------
[HttpPost]
public ActionResult Detail(int ID,CheckForm releasedetail)
{
if (ModelState.IsValid)
{
CheckForm checkform = db.CheckForm.Find(ID);
db.Entry(checkform).State = EntityState.Modified;
checkform.ReviewDate = DateTime.Now;
checkform.ReleaseID = releasedetail.ReleaseID;
checkform.Status = "審核完畢";
db.SaveChanges();
--------------------------------------------------------------------------