2011-08-12 48 views
0

如何通過控制器的方法將我的對象轉換爲json時跳過某些屬性?在mvc json結果中跳過屬性

public JsonResult GetPerson(int PersonId) 
{ 
    Person thisPerson = Person.GetById(PersonId); 
    return Json(thisPerson); //Please strip SecretAlterEgoName from your results please! 
} 

class Person 
{ 
    int PersonId { get; set; } 
    string Name { get; set; } 
    string SecretAlterEgoName { get; set; } //Must not send this! No on must know! 
} 

我想避免這種情況: { 「PERSONID」:3, 「名」: 「彼得·帕克」, 「SecretAlterEgoName」: 「蜘蛛俠」}

,反而顯示這一點: { 「PersonId」:3,「Name」:「Peter Parker」}

我希望避免必須使用StringBuilder來生成我的json字符串,並避免創建一個新的對象,使用較少的屬性來傳輸。

回答

4

我相當確定 - 但現在無法測試 - 您可以從匿名類型生成JSON,並且只創建您在創建類型時感興趣的字段:

public JsonResult GetPerson(int PersonId) 
{ 
    Person thisPerson = Person.GetById(PersonId); 
    return Json(new { thisPerson.PersonId, thisPerson.Name }); 
}