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

标签 asp.net-mvc json

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

<div><%= Customer.FirstName %></div>

但是,如果我为 json 序列化域对象,它将包含每个属性。例子:
public JsonResult Customer (int? id)
{
    Customer customer = _serviceLayer.GetCustomer (id.Value);

    return Json (customer);
}

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

最佳答案

我为此使用匿名类型:

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

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

关于asp.net-mvc - 在 ASP.NET MVC 应用程序中为 json 输出过滤域对象的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/372955/

相关文章:

json - 请求正文日期解析问题

asp.net-mvc - 使用ASP.NET Core和MVC存储本地文件

java - 在 Jackson 中反序列化 JSON,其中键是值

javascript - 为什么在 ASP.NET MVC 中我得到 JSON 而不是 FileDownload?

html - 在 Html.DropDownList 的 <option> 下添加 html class 标签

mysql - 如何将 JSON 对象中返回的 mySQL 日期时间转换为 Swift 日期?

Java,映射一个json

c# - DbGeography 多边形到 JSON

c# - FluentValidation 和服务器+客户端远程验证器

asp.net-mvc - 使用 ASP.net 计算文件夹中的图像