我有一个相当标准的.Net MVC Controller方法:
public ActionResult Add(Customer cust) {
//do something...
return View();
}
Run Code Online (Sandbox Code Playgroud)
客户是这样的:
public class Customer {
public DateTime DateOfBirth { get; set; }
//more stuff...
}
Run Code Online (Sandbox Code Playgroud)
并包含一个页面:
<div><%= Html.TextBox("DateOfBirth") %></div>
Run Code Online (Sandbox Code Playgroud)
问题是我的站点位于美国服务器上,因此cust.DateOfBirth以美国格式MM / dd / yyyy解析。但是,我希望用户以英国格式dd / MM / yyyy输入他们的出生日期。
我可以在DateTime ModelBinder上更改默认输入格式,还是必须创建自己的自定义ModelBinder?
您可以在web.config文件或页面级别更改区域性。但是,如果您只想更改日期格式,而不要更改区域性的其他方面,则可能需要通过global.asax或通用基本控制器中的代码修改当前区域性的DateTimeFormat并将其设置为DateenFormat -GB”。
要为所有页面设置UI文化,请在Web.config文件中添加一个全球化部分,然后设置uiculture和文化属性,如以下示例所示:
<globalization uiCulture="en" culture="en-GB" />
要设置单个页面的UI文化和文化,请设置@ Page指令的Culture和UICulture属性,如以下示例所示:
<%@ Page UICulture="en" Culture="en-GB" %>
若要使ASP.NET将UI文化和文化设置为当前浏览器设置中指定的第一种语言,请将UICulture和文化设置为自动。或者,您可以将此值设置为auto:culture_info_name,其中culture_info_name是区域性名称。有关文化名称的列表,请参见CultureInfo。您可以在@ Page指令或Web.config文件中进行此设置。
选择:
CultureInfo.CurrentUICulture.DateTimeFormat
= CultureInfo.CurrentCulture.DateTimeFormat
= new CultureInfo( "en-GB", false ).DateTimeFormat;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6332 次 |
最近记录: |