0

コントローラーで UK 形式を使用するように Dateformat を正常にオーバーライドしました。

したがって、投稿は正しい日付で機能するようです。

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

しかし、私の見解では、上記があり、日を追加すると月に追加されます!

別名、同じ日付でアクションリンクを呼び出すだけで、常に逆になります。

この英国の日付形式をビューにも適用する方法はありますか?

4

2 に答える 2

2

これを行う 1 つの方法は、コントローラーが次のように継承する共通の基本コントローラーでカルチャをオーバーライドすることです。

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 は動的型を使用するため、ランタイムはデータ型を推測し、US 形式を想定していると思います。

厳密に型指定されたビューを使用し、プロパティを明示的に DateTime として宣言すると、これを回避できます。

または、独自の HTML ヘルパーを作成して、これらのリンクを出力することもできると思います。

于 2011-12-21T11:25:36.587 に答える