小编Raf*_*res的帖子

不同机器上相同文化的不同 DateTimeFormat

当我在不同的服务器上部署 Web 应用程序时遇到问题。某些模式似乎存在不一致DateTimeFormat,例如ShortDatePattern使用相同的文化 (pt-BR)。

在我的开发计算机(安装了 Windows 7、安装了 .NET 4、面向 .NET 3.5 的应用程序)和 Windows Server 2008 R2(具有面向 .NET 4 的应用程序)服务器中,ShortDatePattern 是"dd/MM/yyyy"- 我猜这是正确的。

在生产服务器(Windows Server 2003,使用 .NET 3.5)中,它是"d/M/yyyy". 这给我带来了很多麻烦。

我可以通过手动设置模式来解决这个问题,但我真的很想避免每次需要输出日期时都这样做。特别是因为这在很多地方都非常重要(比如我使用 MVC 的 Html.TextBoxFor 的地方)并且需要大量重写。

如果有一种方法可以在一个地方更改整个 Web 应用程序的模式,那就太好了。我在文件中尝试了以下方法Global.asax.cs,但没有成功:

CultureInfo info = new CultureInfo(System.Threading.Thread.CurrentThread.CurrentCulture.ToString());
info.DateTimeFormat.ShortDatePattern = "dd/MM/yyyy";
System.Threading.Thread.CurrentThread.CurrentCulture = info;
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

谢谢。

asp.net datetime cultureinfo

5
推荐指数
1
解决办法
2940
查看次数

T4MVC - 处理可选参数

我正在使用.NET 3.5,MVC 2和T4MVC 2.6.42 ......

我有以下行动:

public virtual ActionResult Index(string id, int page = 1)
Run Code Online (Sandbox Code Playgroud)

以下路线:

routes.MapRoute(
    "Products", // Route name
    "Products/{id}", // URL with parameters
    new { controller = "Products", action = "Index", id = UrlParameter.Optional, page = UrlParameter.Optional }, // Parameter defaults
    new string[] { "Web.Controllers" }
);
Run Code Online (Sandbox Code Playgroud)

但是当我尝试调用时,MVC.Products.Index("anything")我得到一个"没有重载方法'索引'需要'1'参数"异常.MVC.Products.Index()然而,呼叫是有效的.

我不应该省略"page"参数,因为它默认为'1'?

注意:我已尝试将路由中的页面参数默认为1,但无法正常工作.

注2:还尝试了[可选]属性但没有成功.

c# asp.net-mvc t4mvc

3
推荐指数
1
解决办法
1525
查看次数

标签 统计

asp.net ×1

asp.net-mvc ×1

c# ×1

cultureinfo ×1

datetime ×1

t4mvc ×1