如何通过调用ajax删除mvc webgrid行?

时间:2013-12-02 02:38:28

标签: javascript ajax asp.net-mvc asp.net-mvc-4

在我的mvc razor视图中,我有一个带有webgrid数据的局部视图,我需要添加一个actionlink来删除该行数据,这就是我所做的: 这是javascript函数:              function delMeal(pid){

        if (confirm("Do you want to delete Meal: " + pid)) {
            var data = { 'MealID': pid }
            $.post('/Travel/DeleteMeal', data,
            function (data) {
                if (data == true)
                    location = location.href;
                else
                    alert("Could not delete");
            });
        }
    }
</script>

这是控制器方法:

public JsonResult DeleteMeal(Int32 productId)
    {  
        //NWDataContext db = new NWDataContext();
        Meal product = db.Meals.Where(x => x.MealID == productId).FirstOrDefault();
        db.Meals.Remove(product);
        db.SaveChanges();

        return Json(true, JsonRequestBehavior.AllowGet);
    }

这是在webgrid上使用删除函数调用的行      @ Html.ActionLink(“删除”,“DeleteMeal”,“旅行”,新{onclick =“delMeal(”+ item.MealID +“)”})

上面的代码在动作链接中不起作用,因为我在其中添加了方法(“DeleteMeal”),但是如果我删除该方法,则调用javascript函数,但是方法(“DeleteMeal”)不调用。 任何人都可以帮助我在@ Html.ActionLink上面的代码工作吗?非常感谢,

1 个答案:

答案 0 :(得分:0)

试试这个:

$.ajax({
        type: "POST",
        url: '/Travel/DeleteMeal'
        data: {
            productId:pid
        },
        dataType: "json",
        success: function(json) {
            if(!json.error) 
            $("#grid").load('Url which Send data to This grid');
        }
        error: errorFunc
});

然后看到您的DeleteMeal操作被调用或未更新。