2013-03-14 73 views
0

我有一個編輯類的頁面。在這個頁面上,您可以在頁面上動態添加和刪除類事件。我的問題是在這一節中出現的一件事是一個日期。我想只顯示日期部分而不是時間。這是爲實體框架設置的類。DataType編輯器模板不適用於創建的DOM元素

public class ClassEvent 
{ 
    public ClassEvent() 
    { 
     EventDate = DateTime.Today; 
    } 
    [HiddenInput(DisplayValue = false)] 
    public int ID { get; set; } 

    public string Description { get; set; } 

    [DataType(DataType.Date)] 
    [Display(Name = "Date")] 
    public DateTime? EventDate { get; set; } 

    [HiddenInput(DisplayValue = false)] 
    [Required(ErrorMessage = "Please select a class")] 
    public int ClassID { get; set; } 

    [Display(Name = "Class")] 
    [ForeignKey("ClassID")] 
    public virtual ScheduledClass ScheduledClass { get; set; } 

    public Boolean Delete { get; set; } 
} 

我有這段代碼作爲日期時間對象的編輯器模板。

@inherits System.Web.Mvc.WebViewPage<System.DateTime?> 

@Html.TextBox("", String.Format("{0:d}", Model.HasValue ? Model.Value.ToString("MM/dd/yyyy") :""), new { @class = "datefield", style="width:100px"}) 

我在實際scheduledclass類另一個字段,如下所示

public class ScheduledClass 
{ 
    public ScheduledClass() 
    { 
     Attendees = new List<ClassAttendee>(); 
    } 

    [HiddenInput(DisplayValue = false)] 
    public int ID { get; set; } 

    [HiddenInput(DisplayValue = false)] 
    [Required(ErrorMessage = "Please enter a topic")] 
    public int ClassTopicID { get; set; } 

    [Display(Name = "Topic")] 
    public virtual ClassTopic ClassTopic { get; set; } 

    [HiddenInput(DisplayValue = false)] 
    public int ClassTypeID { get; set; } 

    [Display(Name = "Class Type")] 
    public virtual ClassType ClassType { get; set; } 

    [Required] 
    [DataType(DataType.Date)] 
    [Display(Name = "Class Date")] 
    public DateTime ClassDate { get; set; } 

    [Display(Name = "Attendees")] 
    public virtual ICollection<ClassAttendee> Attendees { get; set; } 

    [Display(Name = "Events")] 
    public virtual ICollection<ClassEvent> ClassEvents { get; set; } 
} 

編輯模板時,頁面加載的ClassDate工作正常,但在網頁中,如果我按一下按鈕,添加類事件編輯器模板不適用於創建的內容。這裏是ClassEvent本身的編輯器模板

@model TRIOSoftware.Domain.Entities.ClassEvent 

<tr class="ClassEvent"> 
<td> 
    @Html.HiddenFor(model => model.ID) 
    @Html.HiddenFor(model => model.ClassID) 
    @Html.TextBoxFor(model => model.Description, new {style ="width:125px"}) 
    @Html.ValidationMessageFor(model => model.Description) 
</td> 
<td>  
    @Html.TextBoxFor(model => model.EventDate, new { @class = "datefield", style = "width:150px" }) 
    @Html.ValidationMessageFor(model => model.EventDate) 
</td> 
<td> 
    @Html.HiddenFor(x => x.Delete, new { @class = "mark-for-delete" }) 
    @Html.LinkToRemoveNestedForm("Remove", "tr.ClassEvent", "input.mark-for-delete") 
</td> 
</tr> 

有沒有人遇到過這個問題?

+0

嘗試裝飾與此屬性,以及:'[DisplayFormat(ApplyFormatInEditMode = TRUE,DataFormatString = 「{0:MM/dd/yyyy}」)]' – 2013-03-14 13:25:10

+0

我確實添加了這個,但我仍然得到相同的結果文本框一起顯示日期和時間 – 2013-03-14 14:47:32

回答

0

的問題最終是我用TextBoxFor,我需要使用EditorFor得到它找到我的編輯模板