Создание ввода HtmlHelpers (например, тип ввода=файл)

Нам нужны атрибуты проверки, и в этом отношении HtmlHelper не предоставляется.

Итак, мы начали разработку нового помощника.

Чтобы узнать, как это сделать, мы просмотрели код MS с помощью JetBrains dotPeek и нашли все необходимое в файле InputExtensions.cs из System.Web.Mvc (4.0).

Есть проблема: для создания входных хелперов нам нужно использовать метод InputHelper(), который, к сожалению, является приватным.

Почему частный? Это должно быть хорошей точкой расширения для помощников ввода.

Итак, теперь нам нужно продублировать этот код в нашем случае, чтобы обеспечить функциональность для создания с шаблоном, атрибутами проверки, ....

Вы считаете, что то, что мы делаем, правильно?

Есть ли в документации страница, в которой говорится, как использовать методы расширения такого рода?

P.S. нашел некоторые реализации, но они не совсем то, что я хочу: http://blog.isilverlabs.com/2011/01/mvc-file-input-helper/


person radu florescu    schedule 18.10.2013    source источник
comment
Вы видели эту страницу Microsoft (Creating HTML-помощник) ?   -  person developer10214    schedule 18.10.2013
comment
Я знаю, как его создать, но мне нужна поддержка помощника по вводу, который является одновременно закрытым и недоступным.   -  person radu florescu    schedule 18.10.2013
comment
Возможно, эта библиотека NuGet-Package ASP.NET Web Helpers поможет вам с ее FileUpload-помощник.   -  person developer10214    schedule 18.10.2013
comment
Вы читали вопрос? Мне это нужно для MVC. На странице, на которую вы ссылаетесь, посмотрите это сообщение: Этот пакет несовместим с ASP.NET MVC.   -  person radu florescu    schedule 18.10.2013
comment
Вы правы, есть такая линия, я ее раньше не замечал. Тем не менее, я использую этот пакет уже месяц в серверном приложении MVC4 без каких-либо проблем (например, помощник @Video). Возможно, они забыли номер версии MVC, например MVC2 или MVC2, потому что он ссылается на некоторые библиотеки, которые могут быть недоступны в более ранних версиях MVC.   -  person developer10214    schedule 18.10.2013


Ответы (1)


Шаблоны настраиваемых полей могут быть тем, что вы ищете. Они позволят вам перезаписать HTML-код, созданный при вызове @Html.EditorFor() или @Html.DisplayFor().

Отметьте свойство в модели представления с помощью атрибута UIHint, указав собственное имя шаблона.

Методы расширения HtmlHelper будут автоматически искать соответствующий шаблон в папке DisplayTemplates или EditorTemplates.

Вот аналогичный вопрос StackOverflow: Как создавать собственные шаблоны редактора/отображения в ASP.NET MVC 3?

person Sambo    schedule 18.12.2013