我很苦惱以下問題,我無法找到一個可接受的方式來解決它。用剃刀在書寫額外的HTML評論
我的挑戰:在Razor視圖的實際屬性值之前寫出HTML註釋。
這是我的(simplyfied)視圖模型:
public class Article
{
public string Title {get;set;}
}
要寫出這個稱號,我只是做我的Razor視圖:
<h2>@Model.Title</h2>
現在我只想寫出一個HTML註釋所以生成的HTML看起來像這樣(簡單):
<h2><!-- some parameters for a 3th party system --> This is my title</h2>
HTML評論來從我應用到'標題'屬性的屬性。它的值是生成的,所以屬性值是在運行時使用.NET框架中的TypeDescriptor添加的。
現在我知道我可以通過簡單地使用HTML助手寫出所有屬性來實現此目的。像這樣:@ MyHelper.Write(m => m.Title)
但是,因爲潛在所有我的屬性需要這個HTML註釋我想避免使用HTML助手,因爲它混亂了視圖,並沒有使查看看起來不錯,(更)可讀。
這是我曾嘗試:
- 創建一個自定義的剃刀基頁(從
WebViewPage<TModel>
繼承)。並覆蓋它的'寫'方法。
這種作品,但這裏最大的問題是,我不知道哪個屬性在那一刻被寫出來。在'Write'方法中沒有辦法獲取當前的屬性名稱。所以現在我動態地搜索我的模型,找到一個屬性,其中已經寫出了一個值,並在該屬性前添加了HTML註釋。
我的問題:是否有另一種方法來實現我想要的。和以前一樣:我想避免使用HTML助手來寫出所有屬性。 (考慮循環等,這只是不好)。
此外,添加在我的控制器此HTML註釋就是沒有選擇,因爲:
- 它不是實際價值的一部分。是一種元數據。
- 該HTML評論應該被添加到
int
's,double's和DateTime
's。無法調整雙重屬性以包含字符串。 (Image aList<DateTime>
。All date's needs this HTML comment) - 應該根據web.config設置添加HTML註釋。是或否(對於每個屬性的值,實際的HTML評論是不同的)
我意識到這個問題相當長。對不起。任何想法都表示讚賞。
任何你不能把這個放在你的原因'_layout'共享視圖? – Oded
不確定你的意思是'這個'... – RainyDays
標題與評論。 – Oded