- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在运行 tutorials for ASP.NET MVC 4 (但我认为这也适用于 MVC 5),您可以在其中为电影商店创建一个网站。
电影模型有一个类型为 DateTime 的 ReleaseDate 属性。通常这个日期被查看的次数多于被编辑的次数,因此我应用了以下属性来很好地呈现它。
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd-MMM-yyyy}")]
public DateTime ReleaseDate { get; set; }
当显示此日期的 View 使用以下方式呈现它时:
@Html.DisplayFor(model => model.ReleaseDate)
如您所料,它的显示格式很好:
但是,当编辑此日期的 View 使用以下方式呈现它时:
@Html.EditorFor(model => model.ReleaseDate)
它显示了一个可爱的 HTML5 日期选择器,但没有填写值,因为日期格式错误(错误消息是 The specified value '11/01/1989 00:00:00' does not符合要求的格式,'yyyy-MM-dd'。
这是一个问题,因为如果用户想要编辑一个条目,控件中的日期永远不会被设置,所以用户将不知道以前/当前的值是什么。
我从阅读其他类似问题中找到的解决方案是将模型中的 DisplayFormat 设置为 yyyy-MM-dd 并且 make 适用于编辑控件:
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime ReleaseDate { get; set; }
这是可行的,因为它会在编辑期间自动填充 HTML5 日期选择器的值(使用 @Html.EditorFor())
:
但是当我显示时(使用 `@Html.DisplayFor()),我坚持使用丑陋的 ISO 格式日期:
我真正的问题是:我可以在模型中设置正常显示和编辑模式的不同显示格式吗?
@Html.DisplayFor
来显示,用@Html.EditorFor
来编辑)我想要实现的是这样的:
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] // use this format for edit controls
[DisplayFormat(DataFormatString = "{0:dd-MMM-yyyy}", ApplyFormatInEditMode = false)] // use this format for display controls
public DateTime ReleaseDate { get; set; }
但是一个属性不能有两个显示格式属性。
最佳答案
为方法 TextBoxFor 使用格式参数并覆盖类型属性:
@Html.TextBoxFor(m => m.ReleaseDate, "{0:yyyy-MM-dd}", htmlAttributes: new { @type="date" })
关于c# - ASP.NET MVC 为编辑和显示模式应用不同的 DisplayFormat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31993584/
我正在尝试为 DateTime 字段创建一个编辑器模板,但它似乎不尊重我的 DisplayFormat 属性。 我的型号: public class Project { [Display(Na
我已经选择了一个 MVC 解决方案,并且正在尝试将表单上的 double 变量格式化为小数点后两位。在模型 View 中使用 设置 [DisplayFormat(DataFormatString =
如何使用 DisplayFormat 在数字之间添加空格。 像这个例子: 50130301037855000150550010000000131000000132 我需要这个: 5013 0301 0
我是 SDL 和 C++ 的新手。 然而,当我在图像上执行 DisplayFormat 以加快 blitting 时,它会使它成为一个矩形。 SDL_Surface* tempImage = NULL
我有以下字符串:"10222002750400447092095835" 我希望它像这样显示:10 2220 0275 0400 4470 9209 5835 我尝试了以下操作,但没有任何结果: [D
我有一个模型属性,我正在尝试使用 EditorFor 模板呈现,并且我正在尝试使用 DisplayFormat 属性应用格式。然而,它根本不起作用——它完全被忽略了。 这是我的模板: @model S
我已经看到了大约 1000 篇关于此的帖子,但我一定错过了一些东西。 基本上,我试图在我的站点中使用 dd/MM/yyyy 格式,但在验证时出现问题。 我有一个 View 模型: public
连接到网格的数据集具有: TField.DisplayFormat := '$######.00' 我想构建网格特定列中的字符串列表: while NOT DataSet.EOF do Stri
我的日期格式如下: [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")] public
在 ASP.NET MVC 4 Beta 中,我有一个具有此属性的实体: [DisplayFormat(DataFormatString = "{0:o}", ApplyFormatInEditMod
我试图在 MVC 中格式化一些 DateTimes,但 DisplayFormat 没有应用于 Nullable 对象,我不知道为什么。它在 CreatedDateTime 上运行良好,但在 Last
我正在尝试将公共(public)属性的 DisplayFormat 设置为当前的 cultureinfo 日期时间格式。该类将用于 Silverlight Datagrid。 [Display
我有一个模型,它有一些 double 属性,并且带有一个 DisplayFormat,它可以将 double 转换成一个很好的可读百分比.. 示例 [DisplayFormat(DataFormatS
我有一个示例类 Student格式化属性为 DateTime?键入以仅将日期显示为 dd/MM/yyyy .代码片段如下: public partial class Student { //
public class Board { [Display(ResourceType=(typeof(MVC.Resources.Board)), Name="TEST")] [Dis
我正在尝试限制 url 的字符数将与注释一起显示。我希望链接可以很长,我只想更改它的显示方式。我可以限制显示 url(链接)的每个 View 的长度,但我更愿意在模型中只更改一次。我不明白为什么这不起
问题 我正在运行 tutorials for ASP.NET MVC 4 (但我认为这也适用于 MVC 5),您可以在其中为电影商店创建一个网站。 电影模型有一个类型为 DateTime 的 Rele
有没有一种方法可以使用 View 模型属性上的 DisplayFormat 属性来为社会安全号码或电话号码应用 DataFormatString 格式?我知道我可以使用 javascript 来做到这
我想检查我的列中是否有任何重复项,我手动设置了条件格式,然后进行了以下测试: If cell2.DisplayFormat.Interior.Color <> RGB(255,
这是我拥有的一个类(class)的简化 View : public class SalesMixRow { [DisplayFormat(DataFormatString = "{0:c0}"
我是一名优秀的程序员,十分优秀!