其他分享
首页 > 其他分享> > 我如何将多个表单值绑定到一个属性?

我如何将多个表单值绑定到一个属性?

作者:互联网

我有3个输入,名称为:Field_Day,Field_Month,Field_Year.

看起来像这样的模型:

public class Model
{
  public string Field { get; set; }
}

如何将这三个表单值绑定到我的Field属性(“ 10.10.2015”)中?

编辑:

大多数答案建议更改我的视图模型.这是不可能的,因为我的模型是元模型.

public class MetaModel
{
  public string[] FieldValues { get; set; } // Select Multiple inputs can have more than one value
  public string ControlType { get; set; }
  ...
}

解决方法:

我倾向于在视图模型中执行以下操作:

public int Day { get; set; }
public int Month { get; set; }
public int Year { get; set; }

public DateTime Field
{
    get { return new DateTime(Year, Month, Day); }
    set
    {
        Day = value.Day;
        Month = value.Month;
        Year = value.Year;
    }
}

此代表的实体仅具有Field属性.因此,在表单中,您可以使用Day,Month和Year属性,然后当您映射回您的实体时,将其Field属性设置为视图模型上的Field属性,该属性会自动根据发布的内容进行填充.

我还建议在这里使用DateTime而不是字符串.它不仅使来回转换变得更加容易,而不必进行一堆字符串分析,而且然后您可以使用所需的任何格式表示日期,而不仅仅是字符串的一种静态格式.

标签:asp-net-mvc-5,model-binding,asp-net,c
来源: https://codeday.me/bug/20191120/2043027.html