Asp.net-Mvc
在 ASP.NET MVC 應用程序中為 json 輸出過濾域對象的最佳方法
如果我在 asp.net mvc 中呈現正常視圖,那麼在我的頁面中顯示的唯一域對象屬性就是我專門寫出的那些。例如:
<div><%= Customer.FirstName %></div>但是,如果我為 json 序列化域對象,它將包含每個屬性。例子:
public JsonResult Customer (int? id) { Customer customer = _serviceLayer.GetCustomer (id.Value); return Json (customer); }由於我不希望每個 Customer 屬性都暴露出來,在這種情況下過濾 json 的輸出屬性的最佳方法是什麼?您可以使用像 UpdateModel() 這樣的包含/排除列表嗎?使用公共類 JsonCustomer 等代理類?你會推薦什麼?
我為此使用匿名類型:
var customer = from c in serviceLayer.GetCustomers() where c.Id == id.Value select new { FirstName = c.FirstName };這不僅僅是一個好主意。相反,如果您的對像圖包含循環引用,它可以防止您在呼叫 Json() 時遇到異常。
您可以使用
$$ ScriptIgnore $$屬性(在 System.Web.Extensions 中)。有關範例,請參見http://www.creave.dk/post/2009/10/07/Excluding-properties-from-being-serialized-in-ASPNET-MVC-JsonResult.aspx 。