EasyUI后台成功删除记录后,前台却总显示"删除失败"
用的是EasyUI,具体错误描述在代码中,请赐教,感谢!
在JS文件中是这样写的:
function del() {
var arr = getSelectedArr();
if (arr.length > 0) {
$.messager.confirm('提示信息', '您确认要删除吗?', function (data) {
if (data) {
$.ajax({
url: 'UserService.ashx?Action=delete&id=' + arr2str(arr),
type: 'GET',
timeout: 1000,
error: function () {
$.messager.alert('错误', '删除失败!', 'error'); //总是执行这一句,没来得及返回值
// grid.datagrid('reload');
// grid.datagrid('clearSelections');
},
success: function (data) {
eval('data=' + data);
if (data.success) { //成功原本是应该执行这里的
grid.datagrid('reload');
grid.datagrid('clearSelections');
} else {
$.messager.alert('错误', data.msg, 'error');
}
}
});
}
});
} else {
Msgshow('请先选择要删除的记录。');
}
后台处理方法:
private string Delete()
{
string result = string.Empty;
bool success = false;
string idString = ParamsofEasyUI.RequstString("id");
List<string> idList = SiteFun.GenerateList(idString, ",");
foreach (var item in idList)
{
success = dal.Delete(new Guid(item)); //这里进行数据交互,成功则返回true,否则返回false
if (success == false)
break;
}
result = JsonHelper<UserModel>.BoolToJson(success);
return result;
}
数据交互:
public bool Delete(Guid id)
{
bool result = false;
using (BricksCMSEntitiesProxy proxy = this.GetProxy())
{
var record = proxy.Context.BC_User.Where(v => v.ID == id).FirstOrDefault();
if (record != null)
{
proxy.Context.DeleteObject(record);
result = true;
}
proxy.Context.SaveChanges(); //为什么执行到这里,浏览器前台就响应了?都还没来得及返回值
return result;
}
}
proxy.Context.SaveChanges();
这个注释掉看看。
不调试也不是很清楚。
问题不在前端,在后端。 要嘛你路径错了UserService.ashx?Action=delete&id=,要嘛就是后端 出异常了。
请问lz,easy好用吗
.....
success: function (data) {
alert("这里可弹出吗?楼主,如果不能,就是后台处理出错了,如果能,就可能是下面的eval出问题了。");
eval('data='+ data);
.....
}
--------------
var json=eval('('+data+')');
火狐+Firebug看看
有个:网络>XHR
看看啥错误
return result;
此处的result 必须是标准的json格式{"key","value"}
你可以这样返回
string result="\"msg\":\"true\"";
return result;