Как создать и реализовать собственный тип данных в бритве mvc3

Я гуглил проблему слишком много раз. Но я не мог найти никакого решения для этого.

Я хочу создать пользовательский DataType с EditorTemplate и DisplayTemplate по умолчанию для использования в бритве mvc3.

Модель

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

Просмотр – Razor

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

На самом деле я хочу создать повторно используемый тип данных с шаблоном редактора по умолчанию и шаблоном отображения.

У вас есть какие-нибудь предложения, пожалуйста? Можете ли вы дать мне полезную ссылку или, если можете, простой пример, пожалуйста? Заранее спасибо.


person agent47    schedule 28.07.2012    source источник
comment
Type — это класс в C#. Я не думаю, что вы имеете в виду вот это, верно?   -  person Mohayemin    schedule 28.07.2012
comment
@Mohayemin, ты прав. Я имею в виду любой тип под Type. обновляю вопрос.   -  person agent47    schedule 28.07.2012
comment
Ну, ваш вопрос предполагает, что вы ищете это. Или я что-то упускаю?   -  person Mohayemin    schedule 28.07.2012
comment
@Mohayemin на самом деле да. Я видел эту ссылку раньше, и она была очень очень полезной. Но я хочу сделать что-то подобное для пользовательского типа данных. Есть ли у вас какие-либо предложения, пожалуйста?   -  person agent47    schedule 28.07.2012
comment
Ну, я не совсем понимаю смысл пользовательского типа данных. Эта ссылка действительна для любого типа данных. Вы имеете в виду тот, который работает для [Datatype.Password], где текстовое поле становится полем пароля?   -  person Mohayemin    schedule 28.07.2012
comment
ок ок ок ок я понял :D у меня есть идея и я ее реализую. Благодаря вашим предложениям. Вы можете опубликовать все свои предложения в одном ответе, поэтому я приму его как ответ. заранее спасибо   -  person agent47    schedule 28.07.2012


Ответы (2)


это отличный учебник для пользовательского шаблона редактора/отображения. Хотя это не синтаксис бритвы, его легко преобразовать.

Если вы хотите создать шаблон редактора в зависимости от атрибута Datatype, вы можете получить значение атрибута, используя ViewData.ModelMetadata.AdditionalValues["DataTypeAttribute"]

Если значение является значением вашего пользовательского типа данных, делайте все, что хотите. В противном случае делайте по умолчанию.

Не уверен, что это хорошая идея. Но это должно работать.

person Mohayemin    schedule 28.07.2012
comment
+1 и принять. Хорошая идея. Я сказал вам, что у меня есть идея, такая же, как у вас. Я внедряю и запускаю его, он работает. Итак, благодаря разговорам, ваше руководство дало мне идею. - person agent47; 29.07.2012

Вы можете создать новый тип, то есть класс Person, который вы можете включить в модель, которую вы отправляете в представление. то есть Модель.Персона.

Определив новые EditorTemplate и DisplayTemplate с именем Person. По умолчанию вызов @Html.EditorTemplateFor(x=>x.Person); будет искать EditorTemplate для типа.

Взгляните на следующую публикацию stackoverflow в "Как использовать asp.net mvc Editor Шаблоны"

person Pieter Germishuys    schedule 28.07.2012
comment
Нет ты ошибаешься. См. комментарии Q, пожалуйста. Мой английский слишком плохой. Извини ): - person agent47; 28.07.2012