c# - Html.TextBoxFor 格式化还是 Html.EditorFor htmlAttributes?

标签 c# asp.net-mvc asp.net-mvc-3

我有点难过,因为我想格式化值并为 css 类添加 html 属性。

如果我使用 @Html.TextBoxFor(m => m.DateModified) - 我可以添加 html 属性,但无法通过成员上的 DisplayFormat 属性设置格式。

如果我使用 @Html.EditorFor(m => m.DateModified) - 格式化有效,但我无法添加 html 属性

如果我使用 @Html.TextBox("DateModified", Model.DateModified, ...) - 当表单处于添加模式时,当模型为空时,我得到空引用异常

实现此目标的最佳方法是什么?

最佳答案

我最终通过为我的日期选择器创建一个自定义编辑器模板来解决这个问题:

Shared/EditorTemplates/DateTime.cshtml

 @model System.DateTime? 
 @Html.TextBox("", Model.HasValue ? Model.Value.ToString("dd/MM/yyyy") : string.Empty, new { @class = "date-picker" })

然后在我原来的页面继续使用

@Html.EditorFor(m => m.DateModified)

关于c# - Html.TextBoxFor 格式化还是 Html.EditorFor htmlAttributes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5972536/

相关文章:

asp.net-mvc - RedirectToAction不会更改URL或导航到索引 View

c# - 使用第三方 API 数据源绑定(bind)数据网格

c# - 我的 ISP 不支持 ASP.NET MVC。我仍然可以使用其中的一部分吗?

javascript - Ajax 调用 Controller 需要很长时间

asp.net-mvc-3 - 如何在不从 View 中包含脚本标签的情况下返回 javascript 内容?

c# - 使用模型创建文件下载链接 MVC3 Razor View

asp.net-mvc-3 - 我怎样才能在 asp.net MVC 3 中制作可重用的局部 View

c# - 我在 asp.net 2.0 中的 session 变量有问题

c# - 如何设置默认数据类型

c# - SQL 数值列禁止间隙