0

我已成功覆盖 Dateformat 以在控制器上使用 UK 格式。

因此,发布似乎适用于正确的日期。

@Html.ActionLink("Previous", "TimeTable", "RoomBookings", new { ViewDate = ViewBag.Date.AddDays(-1) } )

但是,在我看来,我有上述情况,并且增加一天就是增加一个月!

Aka,只需调用具有相同日期的操作链接就会导致它不断反转。

无论如何也要将此英国日期格式应用于视图吗?

4

2 回答 2

2

您可以这样做的一种方法是覆盖您的控制器将从中继承的通用基本控制器中的文化,如下所示:

public abstract class CommonControllerBase : Controller
{


    protected override void ExecuteCore()
    {
        var culture = CultureInfo.CreateSpecificCulture("en-GB");
        var t = Thread.CurrentThread;
        t.CurrentCulture = culture;
        t.CurrentUICulture = t.CurrentCulture;

        base.ExecuteCore();
    }
}

然后它将始终采用英国格式,因此您可以在其中查看:

<label>@ViewBag.Date</label>
@Html.ActionLink("Test", "Test", new { ViewDate = ViewBag.Date.AddDays(-1) } )

和一个看起来像这样的控制器动作:

public ActionResult Test(DateTime viewDate)
{
    ViewBag.Date = viewDate;
    return View("Index");
}

它应该对日期做正确的事情

于 2011-12-21T11:59:44.017 回答
1

由于 ViewBag 使用动态类型,运行时将推断数据类型,我猜它采用美国格式。

如果您使用强类型视图并将属性显式声明为 DateTime,则可以解决此问题。

或者,我想您可以创建自己的 HTML 助手来输出这些链接。

于 2011-12-21T11:25:36.587 回答