2010-10-01 51 views
0

我有以下代码。 dateStart & dateEnd都是DateTime。我的问题是,这是产生以下网址在MVC中使用DateTime

https://www.mysite.localhost/Order/Products/27?categoryId=0&dateStart=09%2F24%2F2010%2000%3A00%3A00&dateEnd=10%2F01%2F2010%2000%3A00%3A00&allDates=0

的问题是,它是创造2010年9月24日,而不是24/09/2010

var url = Url.Action("Products", "Order", 
            new 
             { 
              id = companyId, 
              categoryId = 0, 
              dateStart = dateStart, 
              dateEnd = dateEnd, 
              allDates = 0 
             }); 

回答

0

尝试之一这种

•设置在Web.configUse文化和用户界面区域性这种方法,如果你想设置默认的文化和用户界面文化用于Web应用程序中的所有页面。以下来自Web.config文件的片段说明了这种技术。

<配置>

<的System.Web> <全球化文化= “EN-US” 的UICulture = “DE-DE”/>

< /配置>

•设置@ Page指令中的文化和用户界面文化如果您想要覆盖Web应用程序中特定页面的默认文化和用户界面文化,请使用此方法。 .aspx文件中的以下片段说明了此技术。

<%@页文化= “EN-GB” 的UICulture = “FR-FR” %>

•设置文化和用户界面文化programmaticallyUse如果你想选择哪个文化和用户界面区域性这种方法在运行时使用。 注意您不能在半可信任的代码中更改线程的区域性;改变文化需要SecurityPermission和SecurityPermissionFlag,ControlThread集合。由于与线程关联的安全状态,操作线程很危险。因此,这种许可只应给予可信赖的代码,然后仅在必要时使用。 ASP.NET网页中的以下代码将从Request.UserLanguages属性中检索用户的语言首选项,并使用首选语言的文化和用户界面文化。

using System.Globalization;使用System.Threading的 ;

//设置培养到浏览器的接受语言 Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages [0]);

//将用户界面文化设置为浏览器的接受语言 Thread.CurrentThread.CurrentUICulture = new CultureInfo(Request.UserLanguages [0]); 注意使用.NET Compact Framework进行编程时,不能更改CurrentCulture或CurrentUICulture属性。如果您必须支持智能客户端设备(如Pocket PC)上的每应用程序本地化,则必须使用CultureInfo对象在内部存储用户选择的文化,并在加载资源文件或格式化数据时明确使用它。

我从 复制了http://msdn.microsoft.com/en-us/library/ff647353.aspx