3

我想將從視圖中獲取的日期時間值綁定到模型,以便我可以使用它將其保存在數據庫中。
注意:目前我使用引導日期時間選擇器來獲取日期時間值。
讓我們說我有一個視圖模型名爲foo基於MVC:從視圖到模型的綁定日期時間值(引導日期時間選擇器)

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> 

現在,這會給我的日期時間選擇器中的觀點,但價值不會綁定到我的DateEntered模型中的值。

如果我想要從日期時間獲取視圖的值並將其保存在數據庫中, 我該怎麼做?所以,如果我在我的控制器中執行以下命令,它將工作。

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

PS:這可能是可能的值在數據庫
名稱:ABC
DateEntered:2013年6月14日上午09時34分23秒

+0

只是一般的建議:你可能會發現有用[TwitterBootstrapMvc(http://www.codeproject.com/Articles/570762/TwitterBootstrapMvc) – Dmitry

+0

我使用它:) – Cybercop

回答

4

如果您設置您的輸入名稱屬性,我相信MVC將匹配上具有相同名稱的模型中的特性。

或者,您可以使用HtmlTextBoxFor幫助程序並使用參數htmlAttributes來設置data-format。有點像@Html.TextBoxFor(model => model.DateEntered, new { data_format = 'dd/MM/yyyy HH:mm:ss PP'});

這是MSDN這個過載。

1

你需要給輸入標籤的名稱對應於一個屬性在模型中,像這樣:

<input name="DateEntered" data-format="dd/MM/yyyy HH:mm:ss PP" type="text"/> 
0

您應該只需將相應的「name」屬性賦予映射到視圖模型中所需屬性的引導日期選擇輸入。

<input data-format="dd/MM/yyyy HH:mm:ss PP" type="text" name="DateEntered" />