Пример сценария:как использовать бритву в качестве пользовательского элемента управления
Допустим, мне нужно, чтобы создать пользовательский элемент управления, который отображает список продуктов для указанной категории (CategoryID передается в качестве входных данных для индекса GET контроллера).
Кроме того, у него есть кнопка «Добавить» под списком, который вызывает контроллер категории (GET) (передает категориюID на контроллер), который отображает форму с текстовым полем и кнопкой для добавления новой категории.
Как только пользователь входит в категорию «Подробности» и нажимает «Отправить», вызывается контроллер (POST), который сохраняет данные и перенаправляет пользователя обратно на страницу, откуда он был вызван.
Этот пользовательский элемент управления (файл бритвы) может использоваться несколько раз на одной странице.
Запросы
1) Что такое лучший подход к интеграции такого контроля в просмотренных страницах таким образом, что форма каждого элемента управления пользовательского самодостаточная и не конфликтует с другими экземплярами одного пользовательского элементом управления в одной странице ?
2) Я пробовал Html.RenderAction("Index","Category",new {categoryName = "toys"})
Это хорошо работает при отображении категории и нажатие кнопки «Добавить» позволяет пользователю перейти на страницу «Добавить новую категорию». Проблема в том, какой код мне писать, чтобы я мог вернуть пользователя на ту же страницу просмотра, где был встроен пользовательский элемент управления (еще лучше, если я могу прокрутить окно до позиции, где был установлен элемент управления)?
спасибо!
Не уверен, что перенаправление на returnUrl - лучший способ, но он решил мою проблему. В моей модели ViewModel я добавил свойство returnURL, которое я установил в UrlRefrrer.ToString() при отображении формы, в то время как использовать это значение для перенаправления при выполнении httpPost. Благодарю. – helloworld