【问题标题】:Working with Controller.Response and ajax response使用 Controller.Response 和 ajax 响应
【发布时间】:2026-01-10 22:10:01
【问题描述】:

我正在尝试在 ajax 调用中返回一些错误消息,但不是错误消息而是成功消息(因为调用成功,而这只是一些对不起作用的事情的反馈)。

我必须在控制器中编写什么代码才能执行以下操作:

success(function (result) 
{
 result.allAccepted...
 result.allRejected...
}

【问题讨论】:

    标签: jquery asp.net ajax json asp.net-mvc


    【解决方案1】:

    如下创建一个类:

    public class JsonResponse
    {
        public bool allAccepted { get;set; }
        public bool allRejected { get;set; }
    }
    

    以上将代表您将从控制器发回的响应。

    然后创建一个控制器动作如下:

    [HttpGet]
    public ActionResult GetJson()
    {
        var response = new JsonResponse { allAccepted = false, allRejected = true };
        return Json(response, JsonRequestBehavior.AllowGet);
    }
    

    这将导致以下 json 结果:

    {"allAccepted":false,"allRejected":false }
    

    这可以按照你的描述来解析。

    【讨论】:

    • 我认为我无法使用Controller.Responseresult 添加信息?
    • @MihaiBratulescu 我不会,我会使用上面的。我从来不认识任何人或读过任何关于以这种方式设置响应的内容。
    • 我的方法返回 void 所以我想使用 Response 而不是 return
    【解决方案2】:
    [HttpPost]
    public JsonResult GetJson()
    {
        return Json(new string[] { "allAcceptedValue", "allRejectedValue" }, 
        JsonRequestBehavior.AllowGet);
    }
    

     return Json(new   {
                         allAccepted= yourdata,
                         allRejected= yourdata,
                       }, JsonRequestBehavior.AllowGet);
    

    //在Jquery中获取数据

        var obj = $.stringify(data);
        var allAcceptedValue = obj[0];
        var allRejectedValue = obj[1];
    

        var obj = $.stringify(data);
        var allAcceptedValue = obj.allAccepted;
        var allRejectedValue = obj.allRejected;
    

    【讨论】:

    • 不需要stringify