脚本忽略ASP 6

pwuypxnk  于 2023-02-06  发布在  .NET
关注(0)|答案(3)|浏览(92)

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

jdg4fx2g

jdg4fx2g1#

而不诉诸System.Web,我认为这是很好的避免:
因为MVC有switched formatters,所以现在应该使用[JsonIgnore](来自Newtonsoft.Json)而不是[ScriptIgnore]
哦,如果您这样做是为了防止引用循环,请执行以下操作:https://stackoverflow.com/a/36633265/268066

wkyowqbh

wkyowqbh2#

右键单击解决方案资源管理器中的“References”,然后选择“Add References..”-您将需要从Assemblies - DNX 4.5.1向您的解决方案添加System.Web.Extensions
注意你可能会得到关于DNX Core 5.0的编译器错误,这是一个轻量级版本的框架,为云优化。如果你不需要支持它,只需从project.json的“框架”中删除。

// comment out or delete.
 "dnxcore50": { }

仅供将来参考,如果您查找相关的MSDN文档,它会显示您需要包含的组件

f3temu5u

f3temu5u3#

using Newtonsoft.Json;

using Newtonsoft.Json.Converters; 

public class Page 

{

public int Id { get; set; }

public int Number { get; set; }

public int? BookId { get; set; }

[JsonProperty(ReferenceLoopHandling = ReferenceLoopHandling.Ignore)]

public Book Book{ get; set; }

}

////////////////

public class Book
{

public int Id { get; set; }

public string Name { get; set; }

public virtual ICollection<Page> Pages { get;set;}

}

相关问题