服务器端数据注释对于DateTime数组类型无法正常工作



我在DateRangePickerFor组件的模型中有一个数组类型的DateTime属性。型号:

public class DateRange
{
[Required(ErrorMessage = "Please enter the value")]
public DateTime?[] value { get; set; }
}

执行后期操作时,模型值采用以下类型。由于该控件默认情况下需要两个数组值,并且由于类型为null,因此我得到的值如下。

{System.DateTime?[2]}
[0]: null
[1]: null

因此,在这种情况下,值被设置为值[null,null],并且没有设置给定的注释"请输入值"。因此,请任何人提出处理DateTime数组类型的方法,并使Data注释适用于这种情况。控制器:

public IActionResult Index()
{
return View();
}
[HttpPost]
public IActionResult Index(DateRange model)
{
//posted value is obtained from the model
DateRangeValue.value = model.value;
return View(DateRangeValue);
}

视图:

<form method="post">
// Here i use my custom component (i.e) DateRangerPicker which takes the two date array values and displays like this "3/3/2020 - 9/3/2021"
@Html.DateRangePickerFor(m => m.value)
<input type="submit" value="Save Student Details" />
</form>

我建议修改您的自定义组件,使其具有两个单独的属性,而不是DateTime?类型的二维数组。数组本身不是null,只是它的两个元素的值,因此您不会得到错误消息。

最新更新