Kro*_*nos 266 asp.net-mvc
我无法使用TextBoxFor <,>(表达式,htmlAttributes)将DateTime的唯一日期部分显示到文本框中.
该模型基于Linq2SQL,字段是SQL上的DateTime和实体模型.
失败:
<%= Html.TextBoxFor(model => model.dtArrivalDate, String.Format("{0:dd/MM/yyyy}", Model.dtArrivalDate))%>
Run Code Online (Sandbox Code Playgroud)
这个技巧似乎被折旧了,对象htmlAttribute中的任何字符串值都被忽略了.
失败:
[DisplayFormat( DataFormatString = "{0:dd/MM/yyyy}" )]
public string dtArrivalDate { get; set; }
Run Code Online (Sandbox Code Playgroud)
我想在详细信息/编辑视图中存储和显示日期部分,而不是"00:00:00"部分.
Ros*_*Nab 356
MVC4通过添加一个新的TextBoxFor
重载来解决这个问题,该重载采用字符串格式参数.你现在可以简单地这样做:
@Html.TextBoxFor(m => m.EndDate, "{0:d MMM yyyy}")
Run Code Online (Sandbox Code Playgroud)
还有一个带有html属性的重载,所以你可以设置CSS类,连接datepickers等:
@Html.TextBoxFor(m => m.EndDate, "{0:d MMM yyyy}", new { @class="input-large" })
Run Code Online (Sandbox Code Playgroud)
小智 259
<%= Html.TextBoxFor(model => model.EndDate, new { @class = "jquery_datepicker", @Value = Model.EndDate.ToString("dd.MM.yyyy") })%>
Run Code Online (Sandbox Code Playgroud)
小智 232
[DisplayName("Start Date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
public DateTime StartDate { get; set; }
Run Code Online (Sandbox Code Playgroud)
然后:
<%=Html.EditorFor(m => m.StartDate) %>
Run Code Online (Sandbox Code Playgroud)
and*_*myr 48
或者使用无类型的帮助者:
<%= Html.TextBox("StartDate", string.Format("{0:d}", Model.StartDate)) %>
Run Code Online (Sandbox Code Playgroud)
小智 26
这对我有用.
@Html.TextBoxFor(m => m.DateOfBirth, "{0:MM/dd/yyyy}", new { size = "12", @class = "DOB", tabindex = 121 })
Run Code Online (Sandbox Code Playgroud)
Leg*_*nds 15
TL; 博士;
@Html.TextBoxFor(m => m.DOB,"{0:yyyy-MM-dd}", new { type = "date" })
Run Code Online (Sandbox Code Playgroud)
申请[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
对我没用!
解释:
input
类型的 html元素的日期date
必须根据ISO8601进行格式化,即:yyyy-MM-dd
显示的日期根据用户浏览器的区域设置格式,但解析的值始终格式为 yyyy-mm-dd。
我的经验是,语言不是由Accept-Language
标题决定的,而是由浏览器显示语言或操作系统系统语言决定的。
为了使用以下方法显示模型的日期属性Html.TextBoxFor
:
您的模型类的日期属性:
public DateTime DOB { get; set; }
Run Code Online (Sandbox Code Playgroud)
模型方面不需要其他任何东西。
在 Razor 中,您可以:
@Html.TextBoxFor(m => m.DOB,"{0:yyyy-MM-dd}", new { type = "date" })
Run Code Online (Sandbox Code Playgroud)
Tam*_*ege 13
不要害怕使用原始HTML.
<input type="text" value="<%= Html.Encode(Model.SomeDate.ToShortDateString()) %>" />
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
224661 次 |
最近记录: |