asp.net-mvc - MVC : Binding datetime value (bootstrap datetime picker) from view to model

标签 asp.net-mvc asp.net-mvc-4 twitter-bootstrap data-binding datetimepicker

我想将从 View 中获取的日期时间值绑定(bind)到我的模型,以便我可以将其保存在数据库中。
注意:目前我正在使用 Bootstrap 日期时间选择器来获取日期时间值。
假设我有一个名为 foo 的 ViewModel

public class fooVM
{
  public string Name {get; set; }

  [DataType(DataType.DateTime)]
  public DateTime DateEntered {get; set}
}

基于此我有一个看法

@model User.Model.fooVM
@{
    ViewBag.Title = "Create";
    Layout = "~/Views/shared/_BootstrapLayout.basic.cshtml";
}
@section Datetime
{
    <link href="@Url.Content("~/Content/bootstrap.css")" rel="stylesheet" type="text/css"/>
    <link href="@Url.Content("~/Content/bootstrap-datetimepicker.min.css")" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="@Url.Content("~/Scripts/jquery-2.0.2.min.js")"></script>
    <script type="text/javascript" src="~/Scripts/bootstrap.min.js"></script>
    <script type="text/javascript" src="~/Scripts/bootstrap-datetimepicker.min.js"></script>
}
  @using (Html.BeginForm("Register", "Account", FormMethod.Post))
    {

            <div class="input-block-level">@Html.TextBoxFor(model => model.Name</div>


           <div id="datetimepicker2" class="input-append date">
                    <input data-format="dd/MM/yyyy HH:mm:ss PP" type="text"/>
               <span class="add-on">
                   <i data-time-icon="icon-time" data-date-icon="icon-calendar"></i>
               </span>

                </div>

            <script type="text/javascript">
                $(document).ready(function() {
                    $('#datetimepicker2').datetimepicker({
                        format: 'dd/MM/yyyy hh:mm:ss',
                        language: 'en',
                        pick12HourFormat: true
                    });
                });
            </script>
        </div>

    }
    <div class="form-actions">
        <button type="submit" class="btn btn-primary">Save changes</button>
    </div>
</fieldset>

现在这会给我 View 中的日期时间选择器,但该值不会绑定(bind)到我在模型中的 DateEntered 值。

如果我想从 View 中获取日期时间的值并将其保存在数据库中, 我该怎么做?这样,如果我在我的 Controller 中执行以下命令,它就会起作用。

[HttpPost]
public ActionResult Create(fooVM user)
{
    if (ModelState.IsValid) {
       _db.Users.Add(user);
       _db.SaveChanges();
}

PS:这可能是数据库中的可能值
名称:ABC
输入日期:2013 年 6 月 14 日上午 9:34:23

最佳答案

如果您在输入中设置 Name 属性,我相信 MVC 会将其与模型中具有相同名称的属性相匹配。

或者,您可以使用 HtmlTextBoxFor 帮助程序并使用 htmlAttributes 参数来设置 data-format。类似于 @Html.TextBoxFor(model => model.DateEntered, new { data_format = 'dd/MM/yyyy HH:mm:ss PP'});

这是 MSDN对于这个过载。

关于asp.net-mvc - MVC : Binding datetime value (bootstrap datetime picker) from view to model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17299569/

相关文章:

asp.net-mvc-4 - ckeditor.js :219 Uncaught TypeError: Cannot set property 'dir' of undefined

c# - Visual Studio 2013 编辑 Razor 文件速度慢

javascript - react : Edit existing selected images in a slideshow

css - 部分显示的 ag-grid 单元格内的 Bootstrap 工具提示

c# - ASP.NET MVC4 : how to detect screen width on the filter Action?

asp.net-mvc - 找不到System.Data.Entity.DataBase

c# - ObjectContext 实例已被处置,不能再使用

c# - MVC Razor 字符问题

jquery - 如何在 mvc razor 中显示/隐藏网格行

jquery - 无法通过 JQuery 从 Bootstrap DateTimePicker 获取日期对象