Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将MVC 4 DateTime中的前导0追加到HTMLHelper的编辑器中?_C#_Asp.net Mvc_Asp.net Mvc 4_Datetime - Fatal编程技术网

C# 如何将MVC 4 DateTime中的前导0追加到HTMLHelper的编辑器中?

C# 如何将MVC 4 DateTime中的前导0追加到HTMLHelper的编辑器中?,c#,asp.net-mvc,asp.net-mvc-4,datetime,C#,Asp.net Mvc,Asp.net Mvc 4,Datetime,我在MVC4应用程序中遇到了一个问题,在我的编辑视图中使用输入掩码的日期时间。我使用的输入掩码强制将输入格式化为:“MM/dd/yyyy HH:MM”。在尝试进行编辑之前,此操作非常有效 “09/11/2013 07:00”的输入在我的EditorFor helper中看起来像“91/12/0137 30:00” 如何强制将“0”附加到少于两位数的月份和小时? 这是我的财产: [Required] [DataType(DataType.DateTime)] [Displa

我在MVC4应用程序中遇到了一个问题,在我的编辑视图中使用输入掩码的日期时间。我使用的输入掩码强制将输入格式化为:“MM/dd/yyyy HH:MM”。在尝试进行编辑之前,此操作非常有效

“09/11/2013 07:00”的输入在我的EditorFor helper中看起来像“91/12/0137 30:00”

如何强制将“0”附加到少于两位数的月份和小时?

这是我的财产:

    [Required]
    [DataType(DataType.DateTime)]
    [Display(Name = "Begin Leave")]
    [DisplayFormat(DataFormatString = "MM/dd/yyyy HH:mm", ApplyFormatInEditMode = true)]
    public DateTime BeginLeave { get; set; }
这是我的HtmlHelper编辑器,用于:

@Html.EditorFor(model => model.BeginLeave)
以下是输入掩码设置格式的位置:

    jQuery(function ($) {
        $("#BeginLeave").mask("99/99/9999 99:99");
    });

您应该向属性添加一个属性,如下所示:

    [DisplayFormat(ApplyFormatInEditMode = true,DataFormatString = "{0:yyyy-MM-dd}")]
    public DateTimeOffset PublishedOn { get; set; }
请密切注意属性选项
ApplyFormatInEditMode
DataFormatString


还要检查您要发送回服务器的数据,您发送的输入中可能有错误(例如某些数据未正确序列化?)

您应该向属性添加一个属性,如下所示:

    [DisplayFormat(ApplyFormatInEditMode = true,DataFormatString = "{0:yyyy-MM-dd}")]
    public DateTimeOffset PublishedOn { get; set; }
请密切注意属性选项
ApplyFormatInEditMode
DataFormatString


还要检查您发送回服务器的数据,您发送的输入中可能有错误(例如未正确序列化?)

我可以通过为DateTime添加一个EditorTemplate来实现这一点

这是通过向名为“System.DateTime”的共享/EditorTemplates文件夹添加PartialView来完成的,EditorTemplate的代码为:

@model System.DateTime
@Html.TextBox("", Model == DateTime.MinValue ? "" : Model.ToString("MM/dd/YYYY HH:mm"))

这将返回我需要的输出。

我可以通过为DateTime添加一个EditorTemplate来实现这一点

这是通过向名为“System.DateTime”的共享/EditorTemplates文件夹添加PartialView来完成的,EditorTemplate的代码为:

@model System.DateTime
@Html.TextBox("", Model == DateTime.MinValue ? "" : Model.ToString("MM/dd/YYYY HH:mm"))

这将返回我需要的输出。

我在使用jquery输入掩码时遇到了同样的问题,在填充datetime值时,它会删除前导的零。以下是我的解决方案:

ViewModel:

[Required]
[DataType(DataType.DateTime)]
[Display(Name = "Begin Leave")]
public DateTime BeginLeave { get; set; }
观点:

@Html.EditorFor(model => model.BeginLeave, "{0:MM/dd/yyyy HH:mm}")

注意:这也适用于@Html.TextBoxFor()。以下是我的解决方案:

ViewModel:

[Required]
[DataType(DataType.DateTime)]
[Display(Name = "Begin Leave")]
public DateTime BeginLeave { get; set; }
观点:

@Html.EditorFor(model => model.BeginLeave, "{0:MM/dd/yyyy HH:mm}")

注意:这也适用于@Html.TextBoxFor()

您能提供一些代码吗?输入掩码的确切含义是什么?它是jquery。下面是一个如何使用它的示例:您能提供一些代码吗?输入掩码的确切含义是什么?它是jquery。下面是一个如何使用它的示例:这并没有改变格式。视图仍以“9/10/2013 7:30:00 AM”的格式接收日期时间,当添加到带有输入掩码的文本框中时,该格式显示为“91/12/0137 30:00”,在没有输入掩码的情况下显示为“9/10/2013 7:30:00 AM”。如果可能的话,我需要将“09/10/2013 07:30”返回到我的视图。这并没有改变格式。视图仍以“9/10/2013 7:30:00 AM”的格式接收日期时间,当添加到带有输入掩码的文本框中时,该格式显示为“91/12/0137 30:00”,在没有输入掩码的情况下显示为“9/10/2013 7:30:00 AM”。如果可能的话,我需要让“09/10/2013 07:30”回到我的观点。