本文介绍了从ASP.NET MVC返回JSON错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图通过JSON从ASP.NET MVC控制器返回一个错误消息。我想在屏幕上显示回车,这样的错误看起来像:

I'm trying to return an error message via Json from ASP.NET MVC controller. I want to display carriage returns on the screen, so the error will look like:

错误1

  错误2。

而不是ERROR1。\\ u003cbr / \\ u003eErro2。\\ u003cbr \\ u003e

下面是我的ASP.NET MVC code

Here's my ASP.NET MVC code

Response.StatusCode = (int)HttpStatusCode.BadRequest;
string str = "Error 1.<br/>Error 2.<br.>";
return Json(str);

JavaScript的(节录):

JavaScript (redacted):

.ajax({...
     error: function(xhr, textStatus, exceptionThrown) {
        $('#result').html(xhr.responseText);
     },

调试xhr.responseText收益率:。ERROR1 \\ u003cbr / \\ u003eErro2 \\ u003cbr \\ u003e

任何想法?

推荐答案

会更好在客户端返回的错误列表,然后生成HTML。

would be nicer to return a list of errors and then build the html at the client.

Response.StatusCode = (int)HttpStatusCode.BadRequest;
List<string> errors = new List<string>();
//..some processing
errors.Add("Error 1");
//..some processing
errors.Add("Error 2");
return Json(errors);

和然后在客户端

 .ajax({...
    error: function(xhr, textStatus, exceptionThrown) {
      var errorData = $.parseJSON(xhr.responseText);
      var errorMessages = [];
      //this ugly loop is because List<> is serialized to an object instead of an array
      for (var key in errorData)
      {
         errorMessages.push(errorData[key]);
      }
       $('#result').html(errorMessages.join("<br />"));
  },

您也可以返回一个更具体的错误对象,并使用模板解决方案,但这个想法

you can also return a more specific error object and use a template solution, but this is the idea

这篇关于从ASP.NET MVC返回JSON错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-15 21:54