MVC更新细节控制器

时间:2015-09-01 17:37:21

标签: c# asp.net-mvc linq

我有这个卡车维护计划系统,现在这是我的更新卡车详细信息控制器,在更新这个我还必须更新卡车的当前运行,卡车当前运行将进入最后一次运行?我很难搞清楚。这是我的代码:

    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);


    }

提前谢谢

1 个答案:

答案 0 :(得分:1)

从数据库中获取实体后,只需设置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);
    }