ASP.NET MVC RC - Создание пользовательского элемента управления MVC с кодом

Попытка создать пользовательский элемент управления MVC в Release Candidate, и я не вижу возможности создать элемент с файлом codebehind. То же самое верно для страниц просмотра MVC.

Создание представлений в бета-версии привело бы к появлению кодов... я что-то упустил?

5 ответов

Решение

Код за своего рода побеждает цель MVC Framework. Функциональность должна быть отделена от представления, команда MVC чувствовала, что код на страницах идет вразрез с этой идеологией, и поэтому удалила их.

Вы можете создать собственный вспомогательный метод для создания вашего элемента управления. Также я не уверен, есть ли в MVC компоненты вида (монорельс / замок), но это также может быть вариантом.

Из сообщения в блоге ScottGu:

* Представления без файлов с выделенным кодом На основе отзывов мы изменили шаблоны представления, чтобы по умолчанию не иметь файла с выделенным кодом. Это изменение помогает усилить назначение представлений в приложении 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. Взгляните на эту ссылку, она объясняет это немного лучше:

http://blog.lozanotek.com/archive/2008/10/20/Visual_Studio_Templates_for_MVC_Views_without_Codebehind_Files.aspx

Я думаю, что этот учебник - то, о чем вы спрашиваете... но не совсем уверен, что вы хотите..

Другие вопросы по тегам