当我将对象转换为json字符串时,我试图忽略一个字段。我在互联网上看到我必须在我的领域使用[ScriptIgnore]。但我找不到任何方法导入System.Web.Script ...
我正在使用这个:
"dependencies": {
"AutoMapper": "4.2.1",
"EntityFramework.Commands": "7.0.0-rc1-final",
"EntityFramework.Core": "7.0.0-rc1-final",
"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
"Microsoft.ApplicationInsights.AspNet": "1.0.0-rc1",
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
"Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
"Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.FileProviderExtensions": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final"
},
这是因为MVC 6不兼容吗?
答案 0 :(得分:10)
不使用System.Web
,我认为这是值得避免的:
由于MVC有switched formatters,您现在应该使用[JsonIgnore]
(来自Newtonsoft.Json
)而不是[ScriptIgnore]
。
哦,如果你这样做是为了防止引用循环,请执行以下操作:https://stackoverflow.com/a/36633265/268066
答案 1 :(得分:1)
右键单击解决方案资源管理器中的“引用”,然后选择“添加引用...” - 您需要将System.Web.Extensions
从程序集 - DNX 4.5.1添加到您的解决方案中。
请注意,您可能会收到有关DNX Core 5.0
的编译器错误,这是针对云优化的框架的轻量级版本。如果您不需要支持,只需从project.json
中的“框架”中删除。
// comment out or delete.
"dnxcore50": { }
如果您查找相关的MSDN文档,只是为了将来参考,它会显示您需要包含的程序集。
答案 2 :(得分:1)
使用Newtonsoft.Json;
使用Newtonsoft.Json.Converters;
公共类页面
{
public int Id {get;组; }
public int Number {get;组; }
public int? BookId {get;组; }
[JsonProperty(ReferenceLoopHandling = ReferenceLoopHandling.Ignore)]
公共图书预订{get;组; }
}
////////////////
公共课书 {
public int Id {get;组; }
public string Name {get;组; }
public virtual ICollection Pages {get; set;}
}