2735 / 2041 / 380
Регистрация: 22.07.2011
Сообщений: 7,731
|
||||||
1 | ||||||
@Html.Partial vs UserControl.ascx в Razor05.03.2013, 14:02. Показов 2274. Ответов 2
Метки нет (Все метки)
Если я правильно понял, то @Html.Partial это аналог юзер.контролов.
Как правило, юзер.контрол это не только разметка, но и функциональная логика , которая может быть довольно сложной , например: в момент своей загрузки OnLoad, он опрашивает веб.сервисы, подключается к своим настройкам в БД и т.п , инициирует те или иные свои свойства, реагирует на те или иные действия пользователя. Вся эта логика , естественно , вынесена за пределы разметки, и содержится, например, в отдельной сборке контролов, а в разметке остается лишь html и ссылка на сборку и класс контрола. Теперь вопрос: Как подобное провернуть в Razor ? , т.е я даю ссылку на контрол: @Html.Partial("~/Shared/Controls/MyControl.cshtml"), где содержится его разметка, и , вместо того что бы городить огород из @{ }, я хочу вызвать экземпляр класса этого контрола, который реализует вышеописанную логику по настройке вьюхи MyControl.cshtml. И , по возможности, хотелось бы "коробочное" решение, т.е мой Razor контрол должен быть самодостаточным, и не зависеть от "внешних" файлов приложения, в котором он используется. Добавлено через 9 минут Например, что то в этом духе: MyControl.cshtml:
0
|
05.03.2013, 14:02 | |
Ответы с готовыми решениями:
2
Передать данные в Html.Partial Razor. HTML не предоставляет метод DisplayFor не выводятся абзацы в Html.DisplayFor() (Razor MVC3, C#) Custom Control не выводит HTML текст с ascx-страницы |
519 / 511 / 68
Регистрация: 19.09.2011
Сообщений: 826
|
|||||||||||
05.03.2013, 14:31 | 2 | ||||||||||
Если нужна сложная логика, то лучше используйте
0
|
2735 / 2041 / 380
Регистрация: 22.07.2011
Сообщений: 7,731
|
|||||||||||
05.03.2013, 23:00 [ТС] | 3 | ||||||||||
Похоже что как то так: MyControl.cshtml
теперь нужно делать запросы к серверной части контрола по тем или иным действиям со стороны пользователя. просто что бы понять какие есть аналоги событийной модели WebFroms., в подобных сценариях. Добавлено через 5 часов 23 минуты Немного покопавшись в интернете , пришел к выводу что каких либо механизмов на этот счет в Razor шаблонах не предусмотрено (хотя классические ascx использовать никто не запрещает). И с контроллерами беда , все вызовы контролеров заточены на работу с маршрутами, делать URL маппинг на каждую функцию юзер.контрола это не дело (особенно если URL меняться не должен), ему вообще должно быть по барабану какой там URL т.к все данные передаются POST методом , соответственно нужно как то обеспечить инициализацию контроллера для юзер.контрола и вызов соответствующего экшена, на основе POST данных по тому же URL. - если это вообще возможно. Иначе делаем все ручками, постим данные по текущему URL, в результате чего MVC цикл повторяется, в cshtml делаем проверку @IsPost-а и соответственно обрабатываем новые данные формы которые передаем модели, так же ручками заботимся о сохранении состояний между запросами. Плюс, если однотипных контролов на странице несколько, заботимся о правильной адресации. Короче вся логика контроллера реализуется вручную в фaйле cshtml. Печалька (. Поправьте если не прав...
234
0
|
05.03.2013, 23:00 | |
05.03.2013, 23:00 | |
Помогаю со студенческими работами здесь
3
Проблемы foreach null внутри @Html.Partial Какой визуальный редактор использовать для html + razor? Как получить аттрибут html-тега из partial view в JavaScript? Как получить значение @Html.TextBox, который сделан в partial View? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |