ASP.NET MVC 日期输入格式
ASP.NET MVC Date input format
我有一个日期类型的文本框:
@Html.TextBoxFor(m => m.DateOfBirth, new { @class = "form-control", type = "date" })
模特的出生日期字段
[Required]
[DataType(DataType.Date)]
public DateTime DateOfBirth { get; set; } // Дата рождения
但是日期格式是静态的 mm/dd/yy,这对俄语来说是错误的 (dd/mm/yy)。当然我可以手动设置日期格式,但系统是多语言的,有英语以及俄语、吉尔吉斯语、乌兹别克语(它们都使用欧洲格式)。当用户更改语言时
Thread.CurrentThread.CurrentCulture =CultureInfo.CreateSpecificCulture(lang);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(lang);
他应该看到合适的日期格式。但不知为什么它没有发生:(
我研究过格式取决于浏览器使用的语言。但是chrome无法用吉尔吉斯语显示...
您可以使用 jquery.ui 日期选择器完成您想要的。通过使用它(或提供类似功能的任何其他库),您可以轻松地在多个浏览器中保持一致的用户体验,而使用标准 HTML5 日期输入(<input type="date" />
),您将拥有特定于浏览器的行为。
您可以在加载页面时简单地设置日期选择器 "regional"。看来您的目标之一是能够处理多种语言,我建议坚持 "localization" 的想法,而不是仅仅设置 dateFormat
属性。如果 jquery ui 没有为您正在寻找的文化提供本地化,请创建一个。
我创建了一个简单示例,您可以在其中看到本地化在客户端工作。这个想法非常相似,但在您的情况下,它将在服务器端:https://jsfiddle.net/ipvalverde/wxLxLe7p/9/
关于 ASP.net MVC,我建议您创建一个 Razor 视图,以在屏幕上使用您的文化信息设置所有日期选择器元素。像这样:
@{
_Layout = null;
}
var currentCulture = System.Threading.Thread.CurrentThread.CurrentUICulture;
string cultureCode = currentCulture.Name;
string datepickerLocalization = // Convert the thread culture name to datepicker culture name...
<script>
$(function () {
$.datepicker.setDefaults($.datepicker.regional["@datepickerLocalization"]);
})
</script>
确保您已经为受支持的语言加载了本地化的 javascript。
如果有帮助请告诉我。
我有一个日期类型的文本框:
@Html.TextBoxFor(m => m.DateOfBirth, new { @class = "form-control", type = "date" })
模特的出生日期字段
[Required]
[DataType(DataType.Date)]
public DateTime DateOfBirth { get; set; } // Дата рождения
但是日期格式是静态的 mm/dd/yy,这对俄语来说是错误的 (dd/mm/yy)。当然我可以手动设置日期格式,但系统是多语言的,有英语以及俄语、吉尔吉斯语、乌兹别克语(它们都使用欧洲格式)。当用户更改语言时
Thread.CurrentThread.CurrentCulture =CultureInfo.CreateSpecificCulture(lang);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(lang);
他应该看到合适的日期格式。但不知为什么它没有发生:(
我研究过格式取决于浏览器使用的语言。但是chrome无法用吉尔吉斯语显示...
您可以使用 jquery.ui 日期选择器完成您想要的。通过使用它(或提供类似功能的任何其他库),您可以轻松地在多个浏览器中保持一致的用户体验,而使用标准 HTML5 日期输入(<input type="date" />
),您将拥有特定于浏览器的行为。
您可以在加载页面时简单地设置日期选择器 "regional"。看来您的目标之一是能够处理多种语言,我建议坚持 "localization" 的想法,而不是仅仅设置 dateFormat
属性。如果 jquery ui 没有为您正在寻找的文化提供本地化,请创建一个。
我创建了一个简单示例,您可以在其中看到本地化在客户端工作。这个想法非常相似,但在您的情况下,它将在服务器端:https://jsfiddle.net/ipvalverde/wxLxLe7p/9/
关于 ASP.net MVC,我建议您创建一个 Razor 视图,以在屏幕上使用您的文化信息设置所有日期选择器元素。像这样:
@{
_Layout = null;
}
var currentCulture = System.Threading.Thread.CurrentThread.CurrentUICulture;
string cultureCode = currentCulture.Name;
string datepickerLocalization = // Convert the thread culture name to datepicker culture name...
<script>
$(function () {
$.datepicker.setDefaults($.datepicker.regional["@datepickerLocalization"]);
})
</script>
确保您已经为受支持的语言加载了本地化的 javascript。
如果有帮助请告诉我。