可以在表单设计时,将所有日期列都作为输入项放置,但只标记需要必填的日期列,然后在表单提交时进行校验,只校验必填的日期列是否有值。
以下是一个使用ASP.Net MVC框架的示例代码:
public class ExampleModel
{
[Required] // 标记必填项
[DataType(DataType.Date)] // 设置输入类型为日期
public DateTime Date1 { get; set; }
[DataType(DataType.Date)] // 设置输入类型为日期
public DateTime? Date2 { get; set; } // 可为空
}
@model ExampleModel
@using (Html.BeginForm("ActionName", "ControllerName", FormMethod.Post))
{
@Html.LabelFor(m => m.Date1)
@Html.EditorFor(m => m.Date1)
@Html.LabelFor(m => m.Date2)
@Html.EditorFor(m => m.Date2)
// 其他表单项…
}
[HttpPost]
public ActionResult ActionName(ExampleModel model)
{
if (!ModelState.IsValid)
{
// 校验失败,返回原页面,并提示错误信息
return View(model);
}
// 校验通过,进行后续操作…
return RedirectToAction("ActionName");
}
在上面的示例中,只有Date1被标记为必填项,因此在表单提交时只对Date1进行校验。如果需要添加更多的必填日期列,只需在Model中添加类似于Date1的属性即可。
下一篇:ASP.NET表格单元格格式化