2

我的控制器返回一个像这样的 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;}
}

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

4

1 回答 1

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 方法?

于 2013-03-22T16:29:32.227 回答