簡體   English   中英

MVC更新詳細信息控制器

[英]MVC Update Details Controller

我有這個卡車維護計划系統,現在這是我的更新卡車詳細信息控制器,在更新它時,我還必須更新卡車的當前運行,而卡車的當前運行將轉到最后一個運行? 我很難弄清楚。 這是我的代碼:

    public ActionResult UpdateTruck(TruckDetails u, int id)
    {

        var updateTruck = db.trucks.FirstOrDefault(s => s.id == id);

        if (updateTruck == null)
            return View(u);

        var lastrun = db.trucks.Select( s => s.current_run); // This is my problem, getting the current run value from the database

        updateTruck.registration_no = u.reg_no;
        updateTruck.make = u.make;
        updateTruck.model = u.model;
        updateTruck.engine_no = u.engine_no;
        updateTruck.chassis_no = u.chassis_no;
        updateTruck.driver_name = u.driver_name;
        updateTruck.driver_no = u.driver_no;
        updateTruck.is_updated = DateTime.Now;
        updateTruck.current_run = u.current_run;
        updateTruck.last_run = lastrun; 

        if (ModelState.IsValid)
        {
            db.SaveChanges();
            return View(u);
        }

        return View(u);


    }

先感謝您

從數據庫中獲取實體后,只需設置lastrun = updateTruck.current_run

public ActionResult UpdateTruck(TruckDetails u, int id) {

    var updateTruck = db.trucks.FirstOrDefault(s => s.id == id);

    if (updateTruck == null)
        return View(u);

    var lastrun = updateTruck.current_run;

    updateTruck.registration_no = u.reg_no;
    updateTruck.make = u.make;
    updateTruck.model = u.model;
    updateTruck.engine_no = u.engine_no;
    updateTruck.chassis_no = u.chassis_no;
    updateTruck.driver_name = u.driver_name;
    updateTruck.driver_no = u.driver_no;
    updateTruck.is_updated = DateTime.Now;
    updateTruck.current_run = u.current_run;
    updateTruck.last_run = lastrun; 

    if (ModelState.IsValid)
    {
        db.SaveChanges();
        return View(u);
    }

    return View(u);


}

FWIW我可能會整理一下代碼。 您正在接受操作中的int id參數,但是如果出現問題,則永遠不要將其傳遞回視圖,因此,我假設id應該在您的TruckDetails模型上,因此您應該使用它或添加它那里。 如果您的ModelState無效,您還想跳過所有其他代碼

    public ActionResult UpdateTruck(TruckDetails u)
    {
        if (u != null && ModelState.IsValid)
        {
            var updateTruck = db.trucks.FirstOrDefault(s => s.id == u.id);
            if (updateTruck != null)
            {
                var lastrun = updateTruck.current_run;
                updateTruck.registration_no = u.reg_no;
                updateTruck.make = u.make;
                updateTruck.model = u.model;
                updateTruck.engine_no = u.engine_no;
                updateTruck.chassis_no = u.chassis_no;
                updateTruck.driver_name = u.driver_name;
                updateTruck.driver_no = u.driver_no;
                updateTruck.is_updated = DateTime.Now;
                updateTruck.current_run = u.current_run;
                updateTruck.last_run = lastrun;
                db.SaveChanges();
            }
        }
        return View(u);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM