Asp.net-Mvc

JsonIgnore 在 System.Web.Mvc.Controller 中不起作用

  • July 28, 2020

我有一個 web-API 項目和一個帶有一些屬性的簡單類,其中一些被標記為<JsonIgnore>.

在我的 MVC 控制器中,我放了Return Json(instanceOfMyClass, JsonRequestBehavior.AllowGet). 所有成員都被序列化。我放入Return Json(Of MyClass)(instanceOfMyClass)了我的 WEBAPI 控制器。只有我打算序列化的成員在場。

我怎樣才能忽略這些獨立於將要序列化的控制器的屬性。

JsonResultMVC 中實際上並不使用 JSON.NET,這就是為什麼[JsonIgnore]不起作用。相反,它使用JavaScriptSerializer類。

要使JavaScriptSerializer跳過屬性,您可以[ScriptIgnore]在模型屬性上設置屬性。

另一種方法是進行自定義ActionResult,使用 JSON.NETJsonConvert序列化對象,然後尊重該[JsonIgnore]屬性。

如果它對任何人有幫助,它似乎不太可能或直接使用

$$ ScriptIgnore $$在我的 .net Core 應用程序中,所以我這樣做了:

public IActionResult Index()
{
   Response.ContentType = "text/json";
   return Content(JsonConvert.SerializeObject(instanceOfMyClass));
}

引用自:https://stackoverflow.com/questions/32160530