日期时间未绑定

时间:2018-06-22 09:13:42

标签: c# asp.net-mvc razor

ViewModel:

public class HistoryViewModel
{
    [DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}", ApplyFormatInEditMode = true)]
    public DateTime? OperationDate { get; set; }
}

控制器:

[HttpGet]
public ActionResult Index()
{
    var viewModel = new HistoryViewModel()
    {
        OperationDate = DateTime.Now
    };

    return View(viewModel);
}


[HttpPost]
public ActionResult Index(HistoryViewModel vm)
{
    return RedirectToAction("Index");
}

查看:

@model CBH.ViewModels.HistoryViewModel


@using (Html.BeginForm("Index", "BankHistories", FormMethod.Post, new { id = "SearchForm" }))
{
    @Html.EditorFor(model => model.OperationDate, new { htmlAttributes = new { @Class = "input-small"} })
    <input type="submit" value="search" class="btn btn-default" />
}

现在,在提交表单vm.OperationDate之后将其设置为null。其他属性已正确绑定,但是DateTime似乎失败。

  • 我尝试将DataType添加到我的ViewModel
  • 我尝试提交“ 1990年1月1日”和“ 1990.01.01年”之类的日期
  • 我尝试将类型添加到EditorFor

没有一个有效。如果我打印所有System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.GetAllDateTimePatterns(),我将得到:

dd.MM.yyyy
d MMM yyyy
dddd, d MMMM yyyy
d MMMM yyyy
dddd, d MMMM yyyy HH:mm
d MMMM yyyy HH:mm
dddd, d MMMM yyyy HH:mm:ss
d MMMM yyyy HH:mm:ss
dd.MM.yyyy HH:mm
d MMM yyyy HH:mm
dd.MM.yyyy HH:mm:ss
d MMM yyyy HH:mm:ss
d MMMM
d MMMM
yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK
yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK
ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
yyyy'-'MM'-'dd'T'HH':'mm':'ss
HH:mm
HH:mm:ss
yyyy'-'MM'-'dd HH':'mm':'ss'Z'
dddd, d MMMM yyyy HH:mm:ss
d MMMM yyyy HH:mm:ss
MMMM yyyy
MMMM yyyy

0 个答案:

没有答案