C# 如何防止在ASP.NET核心Web API中通过模型绑定设置属性?

C# 如何防止在ASP.NET核心Web API中通过模型绑定设置属性?,c#,asp.net,asp.net-core,C#,Asp.net,Asp.net Core,我有一个带有TargetUrl属性的ZapScan类,其目的是返回Url和Path属性的串联 ZapScan类也用作控制器操作中的参数,因此受模型绑定的约束: [HttpPost, FormatFilter] [Consumes("application/json", new string[]{"application/xml"})] public ActionResult<ZapScan> OnPost([FromBody] ZapScan scan) {

我有一个带有
TargetUrl
属性的
ZapScan
类,其目的是返回
Url
Path
属性的串联

ZapScan
类也用作控制器操作中的参数,因此受模型绑定的约束:

[HttpPost, FormatFilter]
    [Consumes("application/json", new string[]{"application/xml"})]
    public ActionResult<ZapScan> OnPost([FromBody] ZapScan scan)
    {
        return HandleRequest(scan);
    }
[Bind]属性: 我一直在查看Bind属性,但它在ASP.NET核心Web API中似乎没有
Exclude
属性

[Bind(Exclude = "Height, Width")]

也许TargetUrl上的私有setter可以帮助:

public string TargetUrl
{
    get
    {
        return Url + Path;
    }

    private set;
}
另一方面,考虑到您所说的使用json的框架,也许只需要一个JsonIgnore就可以了

[JsonIgnore]
public string TargetUrl
{
    get
    {
        return Url + Path;
    }
}

这回答了你的问题吗?我相信您可以在属性上使用[BindNever]属性。如果您使用的是实体框架,则可以使用[NotMapped]attribute@HereticMonkey-是否
XmlIgnore
仅适用于序列化而不适用于数据绑定?我相信没有一个集合类似于readonly而不是private。我知道readonly比private更具限制性,但我认为这在过去对我有效。[JsonIgnore]做到了:)
[JsonIgnore]
public string TargetUrl
{
    get
    {
        return Url + Path;
    }
}