ASP.NET应用程序示例代码:困难的json响应

时间:2015-08-04 04:49:56

标签: asp.net json asp.net-mvc rest

我选择ASP.NET Web Application,然后选择Web API。我将身份验证保留在“个人用户帐户”并创建项目。

除了向api/Account/Register添加ajax调用外,我没有做任何其他更改。

当我使用太简单的密码发出请求时,我会得到以下的json响应 - 这似乎很难处理。

是否有一些方法可以使用它,或者我是否真的需要访问textStatus.responseJSON.ModelState.\_empty\_[0]以获得一个很好的文本响应?是否所有错误消息都遵循ASP.Net应用程序休息请求的这种一般响应格式?

PS:实际上我甚至不知道如何处理名为\_empty\_的属性,因为textStatus.responseJSON.ModelState.\_empty\_[0]甚至无效。

我的textStatus对象:

{
    "readyState": 4,
    "responseText": "{\"Message\":\"The request is invalid.\",\"ModelState\":{\"\":[\"Passwords must have at least one non letter or digit character. Passwords must have at least one uppercase ('A'-'Z').\"]}}",
    "responseJSON": {
        "Message": "The request is invalid.",
        "ModelState": {
            "_empty_": [
                "Passwords must have at least one non letter or digit character. Passwords must have at least one uppercase ('A'-'Z')."
            ]
        }
    },
    "status": 400,
    "statusText": "Bad Request"
}

更新:

这是回复的实际内容。

但我仍然不知道如何访问名称为“”的属性。并且,我想确保这是所有错误消息将返回给我的方式。

{
    "Message": "The request is invalid.",
    "ModelState": {
        "": [
            "Passwords must have at least one non letter or digit character. Passwords must have at least one uppercase ('A'-'Z')."
        ]
    }
}

更新:

这似乎很好地解析了它。这和它一样好吗?

error: function (textStatus, errorThrown) {
    var json = textStatus.responseJSON;
    var message = json.Message;
    if (json.ModelState) {
        for (var i = 0; i < json.ModelState[''].length; i++) {
            if (i == 0) message += "\n";
            message += "\n" + json.ModelState[''][i];
        }
    }
    alert(message);
}

0 个答案:

没有答案