我如何将多个表单值绑定到一个属性?
作者:互联网
我有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