Wo soll ich deklarative HTML-Helfer in ASP.NET MVC 3 platzieren?

Ich versuche, einen deklarativen HTML-Helper zu erstellen, wie in @ angegebe ScottGu's Razor post, aber ich habe nicht viel Glück. Ich habe versucht, eine Helpers.cshtml-Datei mit einem DateTimeHelper in Views / Helpers abzulegen, aber sie wurde nicht abgerufen. Deshalb habe ich es in App_Code gemäß @ versuchthe MVC 3 Beta post. Jetzt nimmt es es auf, aber wenn ich versuche, es in einer Datei wie dieser zu verwenden:

@ DateTimeHelper (DateTime.Now)

Der Compiler beschwert sich, dass DateTimeHelper nicht existiert.

Einige seltsame Dinge: Wenn ich die Datei in DateTime.cshtml umbenenne, wird eine andere Fehlermeldung angezeigt, die sich auf den bestimmten Code in meinem Helfer bezieht.

Der Vollständigkeit halber hier der Helfercode:

@helper DateTimeHelper(DateTime t, bool longDate = true, bool showTime = true, bool longTime = true) {
    <time datetime='@t.ToUniversalTime()'>
        @if(longDate) {
            if(showTime) {
                if(longTime) {
                    @t.ToLongDateString() @t.ToLongTimeString();
                } else {
                    @t.ToLongDateString() @t.ToShortTimeString();
                }
            } else {
                @t.ToLongDateString()
            }
        } else {
            if(showTime) {
                if(longTime) {
                    @t.ToShortDateString() @t.ToLongTimeString();
                } else {
                    @t.ToShortDateString() @t.ToShortTimeString();
                }
            } else {
                @t.ToShortDateString()
            }
        }
    </time>
}

Der Helfer wird in einer bestimmten Ansicht wie folgt verwendet:

@model dynamic

<div>
    <p> The current time is @DateTimeHelper(DateTime.Now)</p>
</div>

Antworten auf die Frage(2)

Ihre Antwort auf die Frage