2010-10-06 52 views
0

继上一个问题之后,我在编辑器模板中使用datetime字段时出现问题,下面是编辑器模板(称为“EditDateTime”)的代码。未使用日期时间格式的MVC2编辑器模板

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<System.DateTime?>" %> 

<%= Html.TextBox("", (Model.HasValue ? Model.Value.Date.ToString("dd/MMM/yyyy") : 
DateTime.Today.ToString("dd/MMM/yyyy")), new { @class = "date" })%> 

下面是使用编辑器模板的号召,

<%=Html.EditorFor(Model => Model.StartDate, "EditDateTime") %> 

所有工作正常,除了格式被忽略。该Asp.Net MVC2框架书籍文档模板,并明确规定

我们传递一个空字符串名称 参数,因为该框架将自动用对应于所呈现的模型项目的字段名称的前缀,它;

所以我不应该需要一个ID,那么为什么格式被忽略?但是 - 如果我包含一个ID,格式化会被遵守,但是模型绑定会被破坏。

帮助?


只是为了澄清.. 如果我给HMTL.Textbox一个ID,我得到以下...的日期格式是正确的,但我失去了模型绑定的ID从“起始日期”改为“StartDate_xx”

<input class="date" id="StartDate_xx" name="StartDate.xx" type="text" value="02/May/2012" /> 

而且没有身份证,它看起来像这样...模型绑定是正确的,但格式不是。

<input class="date" id="StartDate" name="StartDate" type="text" value="05/02/2012 00:00:00" /> 

回答

0

尝试使用

Model.Value.ToString("dd/MM/yyyy") 

为我工作。

一切正常真的...是你发送DatetimeDatetime?

+0

它可为空日期时间的项目? – TChamberlainGE 2010-10-06 13:11:59

+0

这不工作 - 它必须是一个编辑器模板而不是显示模板。尽管非常感谢你的帮助。 – TChamberlainGE 2010-10-06 13:19:16