我有一个编辑类的页面。在该页上有一个部分,您可以在该页上动态地添加和删除类事件。我的问题是,在这一部分中出现的一个东西是日期。我只想显示日期部分,而不是时间部分。下面是为实体框架设置的类。
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; }
}
我将这段代码作为datetime对象的编辑器模板。
@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"})
我在实际的scheduleclass类中有另一个字段,如下所示
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>
以前有人遇到过这个问题吗?
问题最终是我正在使用TextBoxFor和我需要使用EditorFor让它找到我的编辑器模板