当前位置:  开发笔记 > 后端 > 正文

在ASP.NET MVC应用程序中过滤json输出的域对象的最佳方法

如何解决《在ASP.NETMVC应用程序中过滤json输出的域对象的最佳方法》经验,为你挑选了2个好方法。

如果我在asp.net mvc中呈现常规视图,那么我在页面中显示的唯一域对象属性是我专门写出来的.例如:

<%= Customer.FirstName %>

但是,如果我为json序列化一个域对象,它将包含每个属性.例:

public JsonResult Customer (int? id)
{
    Customer customer = _serviceLayer.GetCustomer (id.Value);

    return Json (customer);
}

由于我不希望每个Customer属性都暴露出在这种情况下过滤json的输出属性的最佳方法是什么?你可以使用像UpdateModel()这样的包含/排除列表吗?使用代理类,如公共类JsonCustomer?你会推荐什么?



1> Craig Stuntz..:

我使用匿名类型:

var customer = from c in serviceLayer.GetCustomers()
               where c.Id == id.Value
               select new { FirstName = c.FirstName };

这不仅仅是一个好主意.相反,如果您的对象图包含循环引用,它可以防止在调用Json()时获得的异常.



2> JacobE..:

您可以使用[ScriptIgnore]属性(在System.Web.Extensions中).有关示例,请参见http://www.creave.dk/post/2009/10/07/Excluding-properties-from-being-serialized-in-ASPNET-MVC-JsonResult.aspx.

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有