MVC核心字符串数组转换为绑定属性

时间:2019-03-21 18:47:23

标签: c# asp.net-mvc asp.net-core-mvc

所以我有一个控制器,当我想发布模型时,我只想绑定某些字段。我想从[Bind]标签中提取params数组,因为它会变得很长。我该如何完成?当我尝试下面的代码时,我当前收到“属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式”。

protected static readonly string[] BINDABLE = { "PartID", "InternalPartNum",  "ManufacturerPartNum" };

[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Create([Bind(BINDABLE)]PartModel model)
{
    if (!ModelState.IsValid)
    {
        ViewData["ObjectName"] = OBJECT_NAME;
        return BadRequest(ModelState);
    }
    _partDAO.Insert(model);
    return RedirectToAction(nameof(Index));
}

1 个答案:

答案 0 :(得分:0)

对于Bind,它可以接受String,您可以在下面尝试用workaroud:

protected const string BINDABLE = "PartID,InternalPartNum" ;

[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Create([Bind(BINDABLE)]PartModel model)
{
    return Ok();
}