ScriptIgnore ASP 6

时间:2016-05-12 13:56:04

标签: asp.net asp.net-mvc asp.net-core-mvc

当我将对象转换为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不兼容吗?

3 个答案:

答案 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;}

}