规范的前台JS操作返回

$.post('@Url.Action("BatchCancel")', postData, function (res) {
   if (res.flag) {
       ZTLayer.showTips('@T("admin.order.cancelorder.ok")', 6, 3000, function () {  window.location.reload();   });
   }else {
    
if (res.url) { window.location.href = res.url; return; }
ZTLayer.showTips(res.msg
||'@T("admin.common.cancelordererror")'); } });

后台规范

if (!_workContext.CurrentCustomer.IsRegistered())
    return Json(new { flag = false, url = Url.RouteUrl("Login") });  //不能直接Redirt到Login页,否则前台JS捕捉到的是个Html页面,无法进行判断
 
if (!string.IsNullOrEmpty(orderIds)) { ResultModel result = _orderProcessingService.CancelOrder(orderList);    return Json(new { flag = result.Flag == 1, msg = result.Message }); }else {
  return Json(new { flag = false, msg = _localizationService.GetResource("admin.common.cancelordererror") }); //统一返回格式 }

注意:如果是HttpGet请求控制器,返回Json()对象需要指定允许来自客户端的HttpGet请求,如果是Post则不需要

return Json(new { flag = result.Flag == 1, msg = result.Message }, JsonRequestBehavior.AllowGet);
原文地址:https://www.cnblogs.com/opts/p/9403254.html