ASP.NET MVC RC - Создание пользовательского элемента управления MVC с кодом
Попытка создать пользовательский элемент управления MVC в Release Candidate, и я не вижу возможности создать элемент с файлом codebehind. То же самое верно для страниц просмотра MVC.
Создание представлений в бета-версии привело бы к появлению кодов... я что-то упустил?
5 ответов
Код за своего рода побеждает цель MVC Framework. Функциональность должна быть отделена от представления, команда MVC чувствовала, что код на страницах идет вразрез с этой идеологией, и поэтому удалила их.
Вы можете создать собственный вспомогательный метод для создания вашего элемента управления. Также я не уверен, есть ли в MVC компоненты вида (монорельс / замок), но это также может быть вариантом.
* Представления без файлов с выделенным кодом На основе отзывов мы изменили шаблоны представления, чтобы по умолчанию не иметь файла с выделенным кодом. Это изменение помогает усилить назначение представлений в приложении MVC (которые предназначены исключительно для рендеринга и не содержат никакого кода, не связанного с рендерингом), и для большинства людей исключает неиспользуемые файлы в проекте. В сборку RC добавлена поддержка синтаксиса C# и VB для наследования шаблонов представлений от базовых классов, использующих обобщенные типы. Например, ниже мы используем это с шаблоном представления Edit.aspx, чей атрибут "наследует" происходит от типа ViewPage:
Хорошим преимуществом неиспользования файла с выделенным кодом является то, что вы теперь получите мгновенный смысл в файлах шаблонов представления при добавлении их в проект. В предыдущих сборках вы должны были делать сборку / компиляцию сразу после создания представления, чтобы получить внутри него смысл кода. RC делает процесс добавления и немедленного редактирования представления без компиляции и делает его более плавным.
Важное замечание: Если вы обновляете проект ASP.NET MVC, который был создан с помощью более ранней сборки, обязательно следуйте инструкциям в заметках о выпуске - файл web.config в каталоге \Views необходимо обновить с некоторыми настройками, чтобы приведенный выше обобщенный синтаксис для работы.*
Я ответил на этот вопрос здесь:
Как добавить страницу с выделенным кодом в частичное представление
Кажется, это не было особенно сложно, и вполне выполнимо. Этот ответ работал для Частичного 'ViewUserControl', но то же самое должно применяться
Хорошо.
Сначала: добавьте файл класса с условным обозначением.cs (т.е. view.ascx.cs).
Второе: добавьте "using System.Web.Mvc;" к классу
Третье: измените класс на Inherit с "ViewUserControl<>"
В-четвертых: добавьте следующее в заголовок View:
CodeBehind="View.ascx.cs" Inherits="Project.Views.Shared.View"
В-пятых: скопируйте файлы из решения и перетащите обратно, чтобы заново связать их вместе
Примечание. Чтобы это работало с обычным представлением MVC, вам просто нужно унаследовать класс от "ViewPage".
Основная идея ASP.Net-mvc состояла в том, чтобы избавиться от файлов codebehind... вот почему веб-элементы управления asp не имели значения, что большинство не работало. Но с изменениями избавления от кода позади идет другое программирование стиль... Идея состоит в том, что файлы за кодом являются злом:
http://stevesmithblog.com/blog/codebehind-files-in-asp-net-mvc-are-evil/
вся идея состоит в том, чтобы люди помнили, что они используют asp.Net-mvc, а не веб-страницы asp.et. Взгляните на эту ссылку, она объясняет это немного лучше:
Я думаю, что этот учебник - то, о чем вы спрашиваете... но не совсем уверен, что вы хотите..