在网格中实现删除操作

时间:2014-03-27 08:23:59

标签: javascript webgrid delete-row

我正在网格上实现删除功能。 我有一个列,当它被点击时有一个链接删除调用一个JavaScript函数,它将该记录的id发送给调用remove方法删除该记录的控制器但是当我调试车辆的代码列表时返回但是当删除时单击链接 它给出了错误必须绑定数据源才能执行此操作。

视图:

 @model IEnumerable<ParkOnMyDrive.Models.Vehicle>
 @{
ViewBag.Title = "ViewVehicle"
   }
 <h2>ViewVehicle</h2>


  @{        
 var grid = new WebGrid(source: Model,
            defaultSort: "make",
            rowsPerPage: 3);
    }
   <h2>Vehicle List</h2>
  <div id="grid">
   @grid.GetHtml(
    tableStyle: "grid",
    headerStyle: "head",
    alternatingRowStyle: "alt",
    columns: grid.Columns(
             grid.Column("vehicleType","Type"),
             grid.Column("make", " Make"),
             grid.Column("modelType", "Model"),
             grid.Column("color", "Color"),
             grid.Column("registartion", "Registartion"),
             grid.Column(
             header: "Action", 
             format: @<text> 
          <a href="#" id="Delete_@item.vehicleId" >Delete</a></text>)
    )
)

控制器:

                [HttpPost]
             public ActionResult DeleteVehicle(string vehcKey)
             {

        //string key = "eb306a32-1be0-47ad-a0e8-756af97643b8";

        Vehicle vehicleModel = new Vehicle();
        string userName = "wasfa_anjum@yahoo.com";
        if (ModelState.IsValid)
        {
            bool success = vehicleModel.RemoveVehicle(vehcKey,userName);
            if (success)
            {
                ModelState.AddModelError("", "Vehicle deleted successfully");
            }

            else
            {
                ModelState.AddModelError("", "Vehicle not deleted");
            }
        }
        else
        {
        }


        return View();
    }

模型

         public bool RemoveVehicle(string vehicleKey,string userName)
            {
        bool success = false;

        using (var session = MvcApplication.Store.OpenSession())
        {


            var removeVehicle = from vehc in session.Query<Vehicle>()
                                where vehc.vehicleId == vehicleId
                                where vehc.userId == userName
                                select vehc;
            if (removeVehicle.Count() > 0)
            {
                var myVehicle = removeVehicle.FirstOrDefault();
                Session.Delete(myVehicle);
                Session.SaveChanges();

                success = true;
            }
        }

0 个答案:

没有答案