2013-03-21 70 views
2

我的控制器返回一個JsonResult像前:如何修改JSON結果發送回客戶端

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." }]} 

UPDATE

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

與模型是產品的一個實例調用JSON(模型)時,我想在返回之前修改json字符串,以便它包含驗證屬性。從這個類

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); 
} 

繼承和序列化:

+0

你必須告訴我們你用那個JSON做什麼 – mattytommo 2013-03-21 12:59:25

+0

看到我的更新瞭解更多細節 – Sam 2013-03-21 13:14:12

+0

爲什麼不在轉換成json之前修改它? – 2013-03-21 13:32:47

回答

1

爲什麼不創建一個名爲ValidatableBase一個基類,有一個ValidationRules屬性。

或者如果您使用DataAnnotations,爲什麼不使用ASP.NET MVC提供的默認jQuery驗證和HtmlHelper方法?

+0

感謝您的幫助。我使用asp.net mvc,但在這種特殊情況下,我不依賴模型來綁定視圖。我依靠從json對象構建的knockout viewmodel。創建一個基類並不是一個壞主意。儘管我有很多領域,所以我會想出一個解決方案,將驗證規則分配給給定的字段。 – Sam 2013-03-27 08:01:35

相關問題