绑定属性:传入数组而不是在参数中定义

时间:2018-05-11 18:07:08

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

我尝试传递绑定数组而不是在参数中定义。例如,此代码:

    [HttpPost]
    [Route("Create")]
    public ResultsItem Create([Bind(nameof(Person.Username), nameof(Person.Password))] Person)
    {
        ...
    }

它工作正常,但是,如果它变大,我会有一个很大的绑定列表。我想在课堂上定义它,如下所示:

Person.cs

public static readonly string[] BindInclude = new[] { nameof(Username), nameof(Password) };
public ResultsItem Create([Bind(Person.BindInclude)] Person newUser)

但是,我收到以下错误: An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type.

我理解错误,但是我想知道有没有人有这样做的好方法?让我们说我有一个大班,但是,我只想绑定6-10个属性。如何在不淹没控制器中的Bind[()]的情况下执行此操作。

0 个答案:

没有答案