【发布时间】:2010-10-20 18:42:18
【问题描述】:
我正在尝试按照ScottGu's Razor post 中的说明创建一个声明性 HTML 帮助程序,但我运气不佳。我尝试在 Views/Helpers 中放置一个带有 DateTimeHelper 的 Helpers.cshtml 文件,但它不会拾取它,所以我按照the MVC 3 Beta post 在 App_Code 中进行了尝试。现在它捡起来了,但是当我尝试在这样的文件中使用它时:
@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>
【问题讨论】:
标签: razor asp.net-mvc-3