我試圖做一個聲明性的HTML幫助ScottGu's Razor post指定,但我沒有太多的運氣。我試圖在Views/Helpers中添加一個帶有DateTimeHelper的Helpers.cshtml文件,但它不會提取它,所以我嘗試在App_Code中按照the MVC 3 Beta post。現在,它把它撿起,但是當我嘗試使用它在一個文件中,像這樣:我應該在哪裏應該聲明HTML幫助器在ASP.NET MVC 3
@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>
大,那完美的工作。謝謝! – Diego 2010-10-21 00:29:46
這對於MVC 3 RTW仍然準確嗎? – Mike 2011-01-26 20:10:03
@Mike是的,這仍然是真的。我們將在未來版本中尋求支持剃刀助手。 – Eilon 2011-02-01 21:33:10