0

我想将验证错误列表从我的 mvc 应用程序返回到客户端,以便我可以使用jquery 验证 showError s,它需要一个对象

我可以以最适合的任何方式获取字段列表和适用于它们的错误。

我已经尝试了几种格式,字典和这些格式都没有按照验证库的要求序列化为正确的结构。

IE。

{"fieldname":"some error for fieldname", "fieldname2": "some error for fieldname2"}

我所有的例子似乎都变成了类似的东西

{"Key": "fieldname", "Value" : "some error for fieldname"}

返回数据的最佳方式是什么?如何以我需要的正确方式对其进行序列化?

4

1 回答 1

1

我建议您使用Json.NET(它也是 ASP.NET MVC 4 的默认 JSON 序列化程序)及其JsonWriter

StringWriter errorsStringWriter = new StringWriter();
JsonWriter errorsJsonWriter = new JsonWriter(jsonStringWriter);
errorsJsonWriter.WriteStartObject();
errorsJsonWriter.WritePropertyName("fieldname"); 
errorsJsonWriter.WriteValue("some error for fieldname");
errorsJsonWriter.WritePropertyName("fieldname2"); 
errorsJsonWriter.WriteValue("some error for fieldname2");
...
errorsJsonWriter.WriteEndObject();
errorsJsonWriter.Flush();

您可以使用以下方式返回以这种方式生成的 JSON ContentResult

return Content(errorsStringWriter.GetStringBuilder().ToString(), "application/json");

更新

Json.NET还通过JObject. 在这种情况下,您的代码可能如下所示:

var jsonObject = new JObject();
jsonObject.Add("fieldname", "some error for fieldname");
jsonObject.Add("fieldname2", "some error for fieldname2");
...

在这种情况下创建ContentResult可能如下所示:

    return Content(jsonObject.ToString(Newtonsoft.Json.Formatting.None), "application/json");
于 2012-11-22T12:27:18.673 回答