#asp.net-mvc
#asp.net-mvc
Вопрос:
Я новичок в mvc, mvp или как вы хотите их называть. Прямо сейчас я пытаюсь реализовать ReservationController
, когда пользователь сначала выбирает дату, а затем получает список подходящих предложений по времени. Как вы должны знать, предложения зависят от выбранной даты. Вот тут-то и начинается моя проблема / вопрос. Должен ли я:
1) Поместить событие в интерфейс представления типа DateChanged
, а затем подписаться на него в контроллере?
2) Вызовите UpdateSuggestions
контроллер с моей страницы asp, когда изменится выбранная дата. (тогда я должен сделать метод контроллера общедоступным)
Или
3) Обновите предложения в конструкторе контроллера.
С уважением и спасибо за помощь
эрик
Комментарии:
1. Пожалуйста, предоставьте пример кода и какую версию MVC вы используете?
2. Выполняется ли выбор даты по ссылке?
3. Добро пожаловать на сайт. Исходя из
"mvc, mvp or whatever you want to call them"
, хорошим первым шагом было бы приложить усилия для выяснения, какой фреймворк вы используете, и различий между ним и другими, с которыми вы, возможно, путаетесь.4. Контроллер должен наблюдать за моделью, а не за представлением … en.wikipedia.org/wiki /…
Ответ №1:
Вам нужно выйти из системы управления событиями, которая управляет ASP.NET веб-формы. Хотя технически это возможно сделать таким образом, я бы предложил пойти другим путем.
Вам нужно вернуть пользователю представление, которое позволяет ему вводить дату в форму. Затем они отправляют форму обратно на сервер, и другой метод действия обрабатывает это сообщение. Этот метод получает список предложений по времени и возвращает представление с этими временами в качестве модели.
Посмотрите здесь несколько достойных видеороликов по основам MVC: http://www.asp.net/mvc
Комментарии:
1. Точно, MVC управляется запросом-ответом, поскольку HTTP не имеет состояния. Лично я считаю, что WebForms напортачили с веб-разработкой, но это издержки, позволившие опытным разработчикам VB6 приступить к работе в Интернете.
2. Очень верно — я думаю, что MVC сделал и делает огромные объемы для увеличения базы навыков ASP.NET веб-разработчики. Даже если WebForms сохранит свою силу, будет больше людей, способных правильно понимать, что он делает. Говоря это — все разработчики, которых я знаю, которые используют MVC сейчас, ненавидят работать с WebForms.
Ответ №2:
Вот несколько замечательных примеров ASP.Net MVC, которые являются отличным чтением для тех, кто только начинает.
http://www.asp.net/mvc/tutorials/getting-started-with-mvc3-part1-cs
Эти два примера включают книги, которые шаг за шагом помогут вам создать проект MVC:
http://nerddinner.codeplex.com/
http://www.asp.net/mvc/samples/mvc-music-store
Возможно, это не дает прямого ответа на ваш вопрос, но ознакомление с этими примерами должно помочь понять, как работает MVC и, в частности, как его использовать в ASP.Net . 🙂
Вот также небольшая информация о шаблоне MVC.
Ответ №3:
Вы должны поместить ссылку или форму в свое представление, которая указывает на URL, который передает дату действию в контроллере.
Это действие должно принимать дату в качестве параметра, извлекать данные для этой даты и передавать их в отдельное представление, которое отображает данные.
Вам следует изучить основы HTTP и веб-страниц, а также базовый дизайн ASP.Net MVC.
Написание кода во фреймворке или системе, который вы не понимаете, — это путь к разочарованию и катастрофе.
Ответ №4:
Извините, но ваши знания в asp.net mvc очень, очень плохой. Лучше получить некоторые знания получше, иначе вы не сможете заставить это работать. Но в любом случае
1) В представлениях в mvc не существует событий 2) Представление не вызывает contstructor на контроллере 3) смотрите первые два
Ответ №5:
Я думаю, вы неправильно понимаете, как работает MVC.
Если вам неясно, как работает MVC, стоило бы проверить что-нибудь вроде nerd dinner и блог Скотта Гу.
Для обработки этого вы могли бы привязать свои даты к действию, подобному приведенному ниже:
[HttpGet]
public ActionResult YourAction(DateTime date)
{
// Add action logic here
Manager suggestions = new Manager();
var suggestions =suggestions.UpdateSuggestions(date)
// create view model
MyModel model= new MyModel(suggestions);
return View(model);
}