2009-05-21 2 views
5

В ASP.NET MVC, я использую «обычные» элементы управления из панели инструментов и назначаю данные для них, как я сделал с веб-формами? Могу ли я использовать gridview, например?Использует ли ASP.NET MVC обычные элементы управления панелью инструментов?

спасибо.

EDIT: ответ кажется нет. Итак, что вы используете? Есть ли какие-либо элементы управления перетаскиванием в Visual Studio, например, элементы управления webform?

ответ

6

По большей части использование MVC явно не связано с перетаскиванием. Также не существует уровня автоматического управления данными, связанного с данными. Цель в структуре MVC - дать более прямой контроль над разметкой. Существуют некоторые вспомогательные методы, которые можно использовать с визуализацией элементов управления Form. MVC - это совсем другая серверная модель разработки. ПРИМЕЧАНИЕ. Вы можете объединить ASP.Net с MVC в гибридный проект.

Я бы предположил, что вам нужно быть очень комфортно с разметкой HMTL и как работает HTTP + HTML, чтобы быть успешным с проектом MVC. Использование javascript также очень явственно. MVC очень хорош в отношении разделения проблем с задней стороны и переднего конца в веб-приложениях. Это упрощает проектирование и тестирование логики внутреннего блока по сравнению с визуальным интерфейсом. Это основа для веб-разработчиков (первая проблема для веб-приложений), а не для платформы разработчиков для веб-интерфейса (на основе ASP.Net-контроля).

+1

Это заставляет меня задаться вопросом, получают ли они большую аудиторию развития или потеряют некоторых людей. Это похоже на то, что у всех остальных есть среда MVC, отличная от визуальной студии, как IDE. – johnny

+1

Кроме того, не так ли это в некотором роде? – johnny

+0

@johnny, я не думаю, что они пытаются заставить всех переключиться с веб-форм. Это решение для тех, кто хочет большего контроля в шаблоне MVC с использованием .Net. Многие люди действительно смотрели на конкурирующие рамки, такие как rails & django, некоторые переключались. В некотором роде это шаг назад (механизм просмотра веб-форм), но действия маршрутизации и управления - это большой буй, imho. Я сделал много подобных вещей. ashx в приложениях ajaxy. Контроллер/действие, предназначенное только для JsonResult, делает его полезным. – Tracker1

1

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

0

Нет, любой элемент управления, который использует функцию JavaScript для триггера обратной передачи, не будет работать. Также нет концепции ViewState в ASP.NET MVC, поэтому любой элемент управления, который полагается на ViewState или ControlState, также не будет работать.

Идея ASP.NET MVC заключается в том, чтобы использовать другой подход, чем более тяжелая модель WebForms (и большинство ее элементов управления).

0

Вы не можете напрямую использовать элементы управления WebForms в ASP.NET MVC.
Но вы можете обернуть любой элемент управления внутри HTML-помощника.

Пример а GridView:

public static class MvcGrid 
    { 
     public static string MyGrid(this HtmlHelper helper) 
     { 
      var grid = new GridView(); 
      var source = new[] 
          { 
           "Foo", 
           "Bar", 
          }; 
      grid.DataSource = source; 
      grid.DataBind(); 
      var stringWriter = new StringWriter(); 
      var writer = new HtmlTextWriter(stringWriter); 
      grid.RenderControl(writer); 

      return stringWriter.ToString(); 
     } 
    } 

Но это не будет функционировать как WebForm GridView.
Это просто для визуализации HTML.

0

Некоторые элементы управления из панели инструментов WebForms будут работать нормально (хотя я считаю, что GridView не является одним из них ...) в ASP.NET MVC. Клавиши, которые вы не можете использовать элементы управления, которые полагаются на любом

  • постбэков (__doPostback() Javascript функция), или
  • VIEWSTATE

Однако, я не уверен, что вы действительно хотите использовать. Одна из основных идей с ASP.NET MVC заключается в восстановить управление над вашей разметкой html - что-то, чего у вас на самом деле нет с GridView. Если вы хотите иметь многоразовый макет сетки для представления данных, я рекомендую использовать PartialView или Extension Method классу HtmlHelper в зависимости от сложности ваших данных.

3

ASP.Net MVC ориентирован на создание собственного HTML-кода с использованием шаблонов просмотра. Вы не можете использовать элементы управления Webform в своих представлениях, и приложение обрабатывает их так же, как и с Webforms. Они могут отображаться правильно, но нет функции обратной передачи или концепции сохранения своего состояния.

Это, как говорится, можно также интегрировать ASP.Net Webforms с вашими страницами стиля MVC. Вы всегда можете ознакомиться с классическим поведением Hanselman о том, что у вас есть «гибридное» приложение asp.net: http://www.hanselman.com/blog/PlugInHybridsASPNETWebFormsAndASPMVCAndASPNETDynamicDataSideBySide.aspx

1

Ответ: Да и Нет Нет. Предпочтительно связываться

Это то, что общественные страхи, агрессивное смешивание ASP.NET и MVC в нераспознаваемом и unecessarily сложной ляп.

Для тех, кто смотрит на MVC, я хотел бы предложить:

  • Цените чистый простой HTML. Пусто вне вашего инструментария :-)
  • Surf и узнать, как управлять кодом будет сгенерирован так, как вам нужно. to. Сильно набраны, мощные html генераторы придут, но я бы предпочел, чтобы они были чистыми и не были обернуты в контроле , я хочу видеть код.
  • стараются не смешивать ASP.NET и MVC ( заманчиво), но если вы не будете вынуждены к, не считают его нет-нет

Так, чтобы ответить на ваш вопрос, MVC все еще является новой, MVC Contrib , MVC Futures и Html-помощники доступны в рамках и во всем Интернете. Продолжайте заниматься серфингом и держите свою собственную библиотеку трюков, а затем публикуйте их, чтобы другие могли находить и улучшать их, и наоборот. MVC может быть изменен сообществом .net, давайте не будем возвращаться к тащить так быстро.

Удачи вам!

Смежные вопросы