2011-12-08 171 views
2

我對編輯器模板有疑問。例如,我有一個包含日期字段,產品獎勵字段和產品字段權重的模型。我已成功爲DateTime和Decimal創建編輯器模板。我明白,當我使用EditorFor的任何字段時,它將根據字段的數據類型採用模板。ASP.NET MVC編輯器模板

所以,當我使用:EditorFor(m=>m.DateOfBirth)這是DateTime格式,它看起來在EditorTemplates文件夾日期時間模板,EditorFor(m=>m.ProductPrice)這是加倍查找雙模板等)

問題是我怎麼可能不同,我想對於(double)ProductPrize使用字符串格式爲##0.00的一個Decimal模板,對於(double)ProductWeight,使用格式爲##0.0000的另一個模板?

任何幫助,將不勝感激

回答

8

您可能需要使用的EditorFor過載,它接受模板名稱作爲第二個參數,如:

EditorFor(m=>m.ProductPrice, "PriceEditorTemplate") 

更多信息:MSDN

+0

UPD:使用正確的網址更新MSDN文章鏈接 –

+0

打敗我吧,我會刪除我的答案。 – starskythehutch

+0

非常感謝這麼快速的回答。它像一個魅力。我想我會使用這一個,因爲它更容易編輯,而無需在發佈網站後重新編譯項目。 – LetThereBeByte

5

將其定義在您的模型中使用UIHint屬性:

[UIHint("MySpecificEditorTemplate")] 
public ProductPrice {get;set;} 

例如,EditorFor將使用MySpecificEditorTemplate.cshtml

+0

非常感謝這麼快速的回答。這也適用,但我會使用Sergeys解決方案,因爲這是在dll庫中編譯的,這使得一旦網站啓動並運行後就很難編輯 – LetThereBeByte

相關問題