在控制器级别设置NullValueHandling

Gil*_*rdo 10 c# asp.net json.net asp.net-core

暂时的部分,我想从我的api响应中排除空值,所以在我的startup.cs文件中,我有这个.

services.AddMvc()
    .AddJsonOptions(options =>
    {
        // Setup json serializer
        options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
        options.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
    });
Run Code Online (Sandbox Code Playgroud)

但是有可能声明在一个或多个控制器上,我实际上想要包含NULL值吗?

csh*_*olk 5

一种选择是创建自定义 Json 结果类型,如以下问题中所述:使用 JSON.NET 作为 ASP.NET MVC 3 中的默认 JSON 序列化程序 - 是否可能?. 然后你可以在基本控制器上使用 bool var 并使用它在使用自定义Json结果甚至直接传递选项时禁用空值 :

return Json(data, ignoreNulls: true); 
Run Code Online (Sandbox Code Playgroud)