2014-07-18 40 views
0

我正在使用MVC4 Razor爲僅日期字段構建輸入框。這裏是我的代碼:MVC4 Html.EditorFor使用Twitter引導日期

@Html.EditorFor(model => model.StartDate, new { @class = "form-control", type = "text" }) 

對於StartDate,我有以下definiton:

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

會發生什麼情況是,箱子沒有得到通過形狀控制使用純HTML登錄方式格式化。

我試着改變日期的文本,但它不適用於IE,因爲這是一個不支持的功能...而我的應用程序也必須與IE一起工作。

我知道MVC5在該領域有一些變化,但我不能從項目需求中使用它。它應該是MVC4。

如何才能使數據輸入樣式按預期形式控制?

回答

1

添加屬性只適用於MVC 5.1,所以你是正確的,這是行不通的。您可以將EditorTemplates文件夾添加到/ Views/Shared文件夾,然後在那裏放置一個DateTime編輯器,然後根據您的需要定義HTML控件。在您的模板,你可以定義:

//DateTime.cshtml 
model System.DateTime 

@Html.TextBox("", Model.ToShortDateString(), new { @class = "form-control" }) 
+0

呃..我不知道如何做到這一點..你能給我一個例子嗎? – Mendes

+0

在http://stackoverflow.com/questions/22597277/asp-net-mvc4-datepicker-editor-template上得到了一個例子,並使其工作。感謝提示。 – Mendes

1

我的解決辦法是在/加EditorTemplate查看/共享,將引導日期選擇器(從here)和下面的代碼:

@model DateTime? 
@Html.TextBox("", Model.HasValue ? Model.Value.ToString("d") : String.Empty, new { @class = "form-control" }) 
<script type="text/javascript"> 
    $(function() { 
     // target only the input in this editor template 
     $('#@Html.IdForModel()').datetimepicker({ 
      pickTime: false 
     }); 
    }); 
</script> 

做工精細。 ..用日期選擇器....