我的hidden
中的View
字段位于列表foreach
循环中。
@Html.HiddenFor(m => m[i].List[q].EntryDate)
我希望此隐藏字段的format
为dd/MM/yyyy
。目前,当数据绑定时,此日期还包括时间。
我使用了一个全局UTCDateTimeModelBinder
来解析日期时间模型值,如下所示: -
var dt = DateTime.ParseExact(value.AttemptedValue.Trim(), "dd/MM/yyyy", CultureInfo.InvariantCulture);
因此,如果日期时间模型值中存在时间,则会给出错误。
答案 0 :(得分:2)
如果您的输入有多种可能的格式,则可以使用DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles)
overload将格式作为字符串数组。
string[] formats = new string[]{"dd/MM/yyyy", "dd/MM/yyyy HH:mm:ss"};
var dt = DateTime.ParseExact(value.AttemptedValue.Trim(), formats,
CultureInfo.InvariantCulture, DateTimeStyles.None);
答案 1 :(得分:0)
您收到错误,因为您指定的格式与输入字符串不匹配。如果您不关心字符串的时间部分,那么只需:
var dt = DateTime.ParseExact(value.AttemptedValue.Trim().Substring(0,10), "dd/MM/yyyy", CultureInfo.InvariantCulture);