I Verwenden Sie haben die folgende Erweiterungsmethode für Datetime-Typeine Erweiterungsmethode in einem 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;
}
}
das funktioniert in der Steuerung mit Datetime-Objekte in Ordnung, aber in der Ansicht möchte ich dies in einem ViewBag bedienen, einfach wie folgt aus:
@ViewBag.PrioritySummary.UpdateDttm.ToCST();
ich erhalte die folgende Fehlermeldung:
'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();
Wie ich ein ViewBag nach Da werfen könnte teTime, um die Erweiterungsmethode in derselben Zeile anzuwenden?
Ich habe versucht:
@(DateTime)ViewBag.PrioritySummary.UpdateDttm.ToCST();
Aber das hat nicht funktioniert.
Haben Sie eine @ using-Anweisung hinzugefügt, um den Namespace einzubeziehen, in dem sich die '.ToCST()' -Methode befindet? – JLRishe
@JLRishe Ja, ich kann es zum Beispiel in einem Rasierklingenblock verwenden. aber ich möchte es in-line tun –