Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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# 日期时间选择器的行为为何?_C#_Date_Datetime_Datepicker_Asp.net Mvc 5 - Fatal编程技术网

C# 日期时间选择器的行为为何?

C# 日期时间选择器的行为为何?,c#,date,datetime,datepicker,asp.net-mvc-5,C#,Date,Datetime,Datepicker,Asp.net Mvc 5,我有一个模型: const string MyDateFormat = "yyyy-MM-dd"; [DataType(DataType.Date)] [DisplayFormat(DataFormatString = MyDateFormat, ApplyFormatInEditMode = true)] public DateTime Date { get; set; } 和视图: @Html.EditorFor(model => model.Date, new { htmlAtt

我有一个模型:

const string MyDateFormat = "yyyy-MM-dd";

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = MyDateFormat, ApplyFormatInEditMode = true)]
public DateTime Date { get; set; }
和视图:

@Html.EditorFor(model => model.Date, new { htmlAttributes = new { @class = "form-control datepicker" } })
由于某种原因,表单加载时谁不设置模型值,我想知道为什么?
我必须手动:

<script type="text/javascript">
    $(document).ready(function () {
        var elem = $("#Date").val('@Model.Date.ToString(MyDateFormat)');
    });
</script>

$(文档).ready(函数(){
var elem=$(“#日期”).val('@Model.Date.ToString(MyDateFormat)');
});
但是,在我看到的dd.MM.yyy(这是我的计算机区域设置)格式中,为什么

如果尝试设置MyDateFormat=“dd.MM.yyyy”不起作用,请参阅dd.MM.yyyy:

我了解,yyyy-MM-dd是.net运行时本地格式,dd.MM.yyyy是我的计算机本地格式。

如何做到不依赖于计算机的语言环境和.net运行时语言环境?

我相信您缺少表达式周围的大括号

尝试将表达式
yyyy-MM-dd
用大括号括起来,如下所示
{0:yyy-MM-dd}

const string MyDateFormat = "{0:yyyy-MM-dd}";

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = MyDateFormat, ApplyFormatInEditMode = true)]
public DateTime Date { get; set; }
您还可以在视图中使用以下内容,而不是使用
DisplayFormat
属性装饰模型属性

@Html.TextBoxFor(model => model.Date, "{0:yyyy-MM-dd}", new { @class="datePicker"});

您指定的
DataFormatString
错误,因为您应该使用
“{0:yyyy-MM-dd}”
而不是
“yyyy-MM-dd”
。请尝试以下代码,它应该可以工作:

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime? Date{ get; set; }

谢谢,有了TextBoxForWorks,但没有应用TextBoxStyle,添加了类“form control”-显示时没有样式你在使用什么日期选择器?jQuery UI?引导数据采集器useBootstrap不附带日期采集器。