如何在发送回客户端之前修改json结果

时间:2013-03-21 12:58:05

标签: json asp.net-mvc-4

我的控制器返回一个类似的JsonResult:

return Json(model);

如何在将json数据发送回客户端之前动态修改它。我想将验证属性添加到我的模型中,所以最终得到的结果如下:

{"Label": "Test", 
  "ValidationRules":[{"data-val-required":"This field is required.", "data-val-length-max":25, "data-val-length":"Max 25 chars." }]}

更新

public class Product
{
  [Required]
   String Label {get; set;}
}

当使用model作为Product的实例调用Json(model)时,我想在返回之前修改json字符串,以便它包含验证属性。

1 个答案:

答案 0 :(得分:1)

为什么不创建一个名为ValidatableBase的基类,它具有ValidationRules属性:

public class Product : ValidatableBase
{
    public string Label { get; set; }
}

public abstract class ValidatableBase
{
    public ValidatableBase()
    {
        this.ValidationRules = new Dictionary<string, string>();
    }
    public Dictionary<string, string> ValidationRules { get; set; }
}

public ActionResult GetProduct()
{
    var product = new Product();
    product.Label = "foo";
    product.ValidationRules.Add("data-val-required", "this field is required");

    return Json(product);
}

继承此类并序列化。

或者,如果您正在使用DataAnnotations,为什么不使用ASP.NET MVC提供的默认jQuery验证和HtmlHelper方法?