C# .Net Newtonsoft JSON 不序列化属性但在 Json Post 中读取它

使用 .Net 和 Newtonsoft Json,我如何隐藏序列化时的模型属性,但是,能够填充该属性并利用传递的值。


例如


[JsonIgnore]

public Int16 Value { get; set; }

这隐藏了输出的属性,但是,我无法在模型 POST 上设置值。如何在输出时隐藏属性但允许在 POST 或 PUT 请求中设置该属性?


POST 示例:


{

    "Name": "King James Version",

    "Abbreviation" : "kjv",

    "Publisher": "Public Domain",

    "Copyright": "This is the copyright",

    "Notes": "This is the notes.",

    "TextDirection" : "LTR"

}

放置示例:


{

    "ID" : 1,

    "Name": "King James Version",

    "Abbreviation" : "kjv",

    "Publisher": "Public Domain",

    "Copyright": "This is the copyright",

    "Notes": "This is the notes.",

    "TextDirection" : "LTR"

}

商业逻辑:

  1. ID 不应在 POST 请求中传递,如果传递将被忽略。

  2. POST 请求需要缩写,并将使用自定义验证过滤器属性针对数据库进行验证。

  3. PUT 请求不能传递缩写,因为该字段/属性无法更新。

  4. ID 必须在 PUT 请求中传递给自定义验证器中的标识,它是 PUT 请求而不是 POST 请求。


隔江千里
浏览 373回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP