に拡張メソッドを使用して、I持ってのDateTime型のため、次の拡張メソッドはViewbag
public static class DateTimeHelper
{
public static DateTime ToCST(this DateTime dt)
{
TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
DateTime cstTime = TimeZoneInfo.ConvertTimeFromUtc(dt, cstZone);
return cstTime;
}
}
これはDateTimeオブジェクトを持つコントローラで正常に動作しますが、ビューに、私はちょうど、ViewBagでこれを使用したいですこのように:
@ViewBag.PrioritySummary.UpdateDttm.ToCST();
私は次のエラーを取得する:
'System.DateTime' does not contain a definition for 'ToCST' Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 'System.DateTime' does not contain a definition for 'ToCST' Source Error: Line 8: DateTime cstTime = TimeZoneInfo.ConvertTimeFromUtc(ViewBag.PrioritySummary.UpdateDttm, cstZone); Line 9: } Line 10: @ViewBag.PrioritySummary.UpdateDttm.ToCST();
私はダにViewBagを唱えられる方法teTime、拡張メソッドを同じ行に適用するには?
私が試した:
@(DateTime)ViewBag.PrioritySummary.UpdateDttm.ToCST();
をしかし、これは動作しませんでした。
@(((DateTime)ViewBag.PrioritySummary.UpdateDttm).ToCST());
をし、あなたのビューの先頭に対応するusing
ステートメントを追加する:
'.ToCST()'メソッドがある名前空間を含めるために@using文を追加しましたか? – JLRishe
@JLRisheええ、私は、例えば、剃刀のブロックでそれを使うことができます。しかし、私はそれをインラインでしたいと思います。 –