Портирование многоколоночного комбинированного списка ASP.NET (Telerik) в MVC. - PullRequest
1 голос
/ 21 октября 2011

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

Я бы предпочел не портить свой проект MVC элементами управления ASP.NET и приветствовать известные вам альтернативы json / MVC. (опубликовать их, если вы знаете что-либо)

Пример пользовательского интерфейса, который мне нужен в ASP.NET MVC Combo sample

Вернуться к портированию

Хотя, к сожалению, я оставлен для переноса этого элемента управления в MVC, похоже, это широко распространенная практика, поскольку Telerik имеет подробные инструкции по , как это сделать .

Это заставляет меня спросить:

Насколько часто веб-сайт MVC использует элементы управления ASP.NET?

Опять я скажу, что не хочу этого делать, поэтому я приветствую альтернативы, специфичные для MVC. При этом я попытаюсь объединить этот контроль с моим существующим сайтом. </End Disclaimer>

Если вы нажмете на эту гиперссылку и посмотрите на исходный код внизу, можете ли вы сказать мне, где я должен поместить следующее в MVC?

  1. Код позади (Мой первый инстинкт - использовать контроллер, но другой вопрос SO указывает, что я должен создать файл ViewName.aspx.cs)

  2. Как перенести SQLDataSource на новый образ мышления «Модели». Я знаю, что они различны по своей природе, но я не знаю, как представить данные в элемент управления ASP.NET таким образом, чтобы он потреблял информацию.

  3. Как мне обращаться с компонентом AJAX? Этот элемент управления имеет компонент AJAX, использующий обратные вызовы. Да, это становится ужасно, но мне кажется, что я должен это сделать.

  4. Видимо, эта модель сохраняет данные в сеансе или в состоянии просмотра. Я понятия не имею, работает ли это даже в MVC. Руководство, альтернативный контроль или спасательный круг высоко ценится.

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

Примечание. Для всех комментариев, затрагивающих этот вопрос, помните, что мне нужна только эта функция управления ASP.NET; Я не могу найти сопоставимый элемент управления в MVC.

Ответы [ 6 ]

6 голосов
/ 21 октября 2011

портирование с веб-форм asp.net на MVC - это смена парадигмы.

Непосредственное портирование не работает.

Модель, в которой вы обычно описываете свои данные и осуществляете доступ к ним.Вид для отображения данныхКонтроллер сливает два других вместе

Таким образом, SQLDataSource - это ваш уровень доступа к данным, и поэтому он приведет к вашей модели проблему с образцом мышления SQLDataSource == Модель, и тогда вы избавитесь от точки отделения вашей презентации от доступа к данным

Вы должны думать о разработке MVC как о новой сборке

Я бы выбрал книгу или серию видео из вашего предпочтительного источника и изучил бы, начиная с MVC3 (в нем есть некоторые различия, которые упрощают скорость сборки и усиливают разницу между веб-формами)и mvc)

1 голос
/ 01 ноября 2011
  1. Я бы предпочел использовать ViewModel вместо кода позади

  2. Вам не нужно выбрасывать SqlDataSource, вы можете использовать набор результатов и строить из него вашу модель, проблема может заключаться в именах столбцов в наборе результатов ... сложно, но может быть сделано

  3. Поскольку в MVC нет компонентов, кроме помощников, вам может понадобиться помощь jQuery, вероятно, это просто

    $. Ajax ({url: "/ controller / action", данные: {/ * json или сериализованная форма * /}, successs: function (data) {// если вы получили ответ в виде html от / controller / action$ ("# some_div"). html (data);}}

  4. Сессия доступна в MVC, но viewstate нет, вы можете использовать HttpContenxt.Cache или TempData, если вам нужно что-то вроде viewstate. Используйте TempData для хранения данных между перенаправлениями или httpcontext.cache для дальнейшего кэширования данных.

1 голос
/ 01 ноября 2011

Почему бы просто не использовать элементы управления Telerik MVC?Они работают довольно хорошо.Получите их через пакет NuGet или перейдите по этой ссылке http://www.telerik.com/products/aspnet-mvc.aspx

1 голос
/ 01 ноября 2011

Надеюсь, это поможет.

1 голос
/ 28 октября 2011

Я не могу найти подобную функциональность в элементе управления MVC

MVC на самом деле не имеет концепции элементов управления так же, как ASP.Net - есть только реальнопростые старые элементы управления HTML (т.е. скрытый ввод, ввод текста, флажки, радиокнопки, поле выбора, текстовая область, пароль и кнопки).

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

Я не уверен, что вы сможете «перенести» элемент управления в MVC - вам, скорее всего, придется попытаться воссоздать его самостоятельно, используя контроллер MVC ичастичное представление с небольшим количеством javascript для создания элемента управления.

Взгляните на плагин JQuery UI Autosomplete - вы, вероятно, можете использовать его для получения чего-то похожего

1 голос
/ 27 октября 2011

Добавьте IFrame в ваше представление MVC, которое просто показывает страницу WebForms (или просто используйте этот элемент управления на одной странице WebForms).

Ничто не говорит о том, что у вас не может быть сайта с веб-формами и страницами MVC.Вы можете направить один URL-адрес в WebForm только для этого элемента управления.

...