Bootstrap datepicker。麻烦绑定:该值无效

时间:2017-08-17 17:34:31

标签: c# asp.net asp.net-mvc twitter-bootstrap datepicker

我在使用bootstrap datepicker绑定模型属性时遇到问题。我收到以下错误:

enter image description here

值DATE对DATEFIELD

无效

这就是我的模型中属性的定义方式:

    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
    public DateTime FechaDesignado { get; set; }

这是构建视图的方式:

<div class="form-group">
    <div>
        <input type="datetime" class="datepicker form-control" asp-for="@item.FechaDesignado"/>
        <span asp-validation-for="@item.FechaDesignado" class="text-danger"></span>
    </div>
</div>

转换为:

<div class="form-group" form="form1">
    <div>
        <input type="datetime" class="datepicker form-control" data-val="true" data-val-required="The FechaDesignado field is required." name="item.FechaDesignado" value="09/01/1901" />
        <span class="text-danger field-validation-valid" data-valmsg-for="item.FechaDesignado" data-valmsg-replace="true"></span>
    </div>
</div>

这就是它在我的数据库上的样子。

enter image description here

这是datepicker的代码:

<script type="text/javascript">
    $(function () {
        $('.datepicker').datepicker({
            "autoclose": true
        });
    });

</script>

在控制器内发布行动:

    [HttpPost, ActionName("Management")]
    //[ValidateAntiForgeryToken]
    public async Task<IActionResult> Management(int? id)
    {
        var storetoupdate = _context.Stores.SingleOrDefault(m => m.StoreID == id.Value);
        if (await TryUpdateModelAsync(
            storetoupdate, "item",
            s => s.StoreName, s => s.IncomePeriodicity, s=>s.Usuario, s => s.FechaDesignado))
        {
            await _context.SaveChangesAsync();
            return RedirectToAction("Management");
        }
        return RedirectToAction("Management");
    }

问题:似乎我必须使用DateTime.ParseExact将日期输入字段转换为日期时间对象,但我不知道如何编辑控制器。对不起,但我正在学习这一切。

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用DateTime.ParseExactdate格式转换为datetime。有关详细信息,请参阅this

修改

您可以使用data-format这样的属性来发布正确的格式日期:

<input data-format="0:MM/dd/yyyy" type="datetime" class="datepicker form-control" asp-for="@item.FechaDesignado"/>