我想从我的mvc应用程序返回验证错误列表到客户端,我可以使用带有对象的jquery validation showError
我可以以最适合的方式获得适用于它们的字段列表和erorr。
我已经尝试了几种格式,字典,并没有按照验证库的要求将这些格式化为正确的结构。
即。
{"fieldname":"some error for fieldname", "fieldname2": "some error for fieldname2"}
我的所有例子似乎都按照
的顺序排列{"Key": "fieldname", "Value" : "some error for fieldname"}
返回数据的最佳方式是什么?如何以正确的方式对其进行序列化?
答案 0 :(得分: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();
您可以使用ContentResult
return Content(errorsStringWriter.GetStringBuilder().ToString(), "application/json");
<强>更新强>
Json.NET还通过JObject
支持动态JSON。在这种情况下,您的代码可能如下所示:
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");