2

我對此問題進行了太多次搜索。但我無法找到任何解決方案來做到這一點。如何在mvc3剃鬚刀中創建和實現自定義數據類型

我想創建一個自定義DataType具有默認EditorTemplateDisplayTemplate用於MVC3剃刀

型號

[DataType("MyCustomDataType")] 
public MyType Property { get; set; } 
// I mean by MyType any type of data: string, int, datetime and so on 

視圖 - 剃刀

@Html.DisplayFor(m => m.Property) 
//or 
@Html.EditorFor(m => m.Property) 

其實我想創建一個默認的編輯器模板和顯示模板可重複使用的數據類型。

你有什麼建議嗎?你能給我一個有用的鏈接,或者如果可以的話,請舉個簡單的例子嗎?提前致謝。

+0

'Type'是'C#'中的一個類。我認爲你在這裏不是那個意思,對嗎? – Mohayemin 2012-07-28 16:51:26

+0

@Mohayemin你是對的。我的意思是任何類型的'Type'。我更新了這個問題。 – 2012-07-28 16:53:17

+0

那麼,你的問題表明我正在尋找[this](http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-1-introduction.html)。或者我錯過了什麼? – Mohayemin 2012-07-28 17:02:10

回答

2

this是自定義編輯器/顯示模板的優秀教程。儘管它的語法不是很靈活,但它很容易轉換。

如果你想根據Datatype屬性來創建模板編輯器,你可以使用ViewData.ModelMetadata.AdditionalValues["DataTypeAttribute"]

屬性值如果值是您的自定義數據類型值,你什麼都想要。否則,請執行默認設置。

不知道這是不是一個好主意。但它應該工作。

+1

+1並接受。這是一個好主意。我告訴過你我有個想法,和你的一樣。我執行並運行它,它工作。所以感謝對話,你的指導給了我這個想法。 – 2012-07-28 22:06:38

0

您可以創建一個新類型,即可以包含在發送到視圖的模型中的Person類。即Model.Person。

通過定義一個名爲Person的新EditorTemplate和DisplayTemplate。默認情況下,調用@ Html.EditorTemplateFor(x => x.Person);將尋找該類型的EditorTemplate。

看一看下面的計算器職位上"How to use asp.net mvc Editor Templates"

+0

Nop你錯了。請參閱Q的評論。我的英語太糟糕了。對不起): – 2012-07-28 17:24:19