Я пытаюсь создать декларативный HTML-помощник, как указано в Пост бритвы ScottGu , но мне не очень повезло.Я попытался поместить файл Helpers.cshtml с DateTimeHelper в Views / Helpers, но он не поднял его, поэтому я попытался в App_Code согласно посту MVC 3 Beta .Теперь он подхватывает его, но когда я пытаюсь использовать его в файле, например, так:
@ DateTimeHelper (DateTime.Now)
Компилятор жалуется, что DateTimeHelper не существует.
Некоторые странные вещи: если я переименую файл в DateTime.cshtml, я получу другую ошибку, что-то о конкретном коде в моем помощнике.
Для полноты, вот код помощника:
@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>
}
Помощник используется в определенном виде, подобном этому:
@model dynamic
<div>
<p> The current time is @DateTimeHelper(DateTime.Now)</p>
</div>