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

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

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

Ответы [ 5 ]

4 голосов
/ 28 января 2009

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

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

3 голосов
/ 25 марта 2009

Я ответил на этот вопрос здесь :

Как добавить страницу с выделенным кодом в частичное представление

Кажется, это не было особенно сложно, и вполне выполнимо Этот ответ работал для частичного 'ViewUserControl', но то же самое должно применяться

Хорошо.

Первый: добавить файл класса с условным обозначением .cs (т.е. view.ascx.cs)

Второе: добавить «using System.Web.Mvc;» в класс

В-третьих: изменить класс на Inherit с «ViewUserControl <>»

Четвертый: добавить следующее в заголовок View:

CodeBehind="View.ascx.cs" Inherits="Project.Views.Shared.View"

В-пятых: скопируйте файлы из решения и перетащите обратно, чтобы заново связать их вместе

Примечание. Чтобы это работало с обычным представлением MVC, вам просто нужно наследовать класс от ViewPage

3 голосов
/ 28 января 2009

С Сообщение в блоге ScottGu :

* Просмотры без кодовых файлов Основываясь на отзывах, мы изменили шаблоны представления, чтобы по умолчанию не иметь файл с выделенным кодом. Это изменение помогает усилить назначение представлений в приложении MVC (которые предназначены исключительно для рендеринга и не содержат никакого кода, не связанного с рендерингом), и для большинства людей исключает неиспользуемые файлы в проекте. В сборку RC добавлена ​​поддержка синтаксиса C # и VB для наследования шаблонов представлений от базовых классов, использующих обобщенные типы. Например, ниже мы используем это с шаблоном представления Edit.aspx, чей атрибут «наследует» происходит от типа ViewPage:

Одним приятным преимуществом неиспользования файла с выделенным кодом является то, что вы теперь получите немедленный смысл в файлах шаблонов представления при добавлении их в проект. В предыдущих сборках вы должны были делать сборку / компиляцию сразу после создания представления, чтобы получить внутри него смысл кода. RC делает процесс добавления и немедленного редактирования представления без компиляции и делает его более плавным.

Важное замечание: Если вы обновляете проект ASP.NET MVC, созданный в более ранней сборке, обязательно следуйте инструкциям в заметках о выпуске - файл web.config в каталоге \ Views необходимо обновить с некоторыми параметрами для того, чтобы вышеуказанный синтаксис основанный на дженериках работал. *

1 голос
/ 28 января 2009

Идея 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

0 голосов
/ 28 января 2009

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

...