Как добавить логику в элемент управления User View в MVC 3?
User View Control
не имеет кода позади. Итак, где / как я должен сделать events
элементов?
Я хочу понять логику управления в MVC...
5 ответов
В MVC нет пользовательских элементов управления, поэтому не стоит беспокоиться о логике элемента управления. В MVC нет постбэков. В MVC нет ViewState. В MVC нет событий.
Есть модели:
public class MyViewModel
{
public string Name { get; set; }
}
Контроллеры, манипулирующие моделью:
public class HomeController: Controller
{
public ActionResult Index()
{
return View(new MyViewModel
{
Name = "John"
});
}
}
и представления, отображающие данные, содержащиеся в модели:
@model AppName.Models.MyViewModel
<div>@Model.Name</div>
Когда представления должны вызывать что-то в контроллере, они больше не используют PostBacks или события: они используют стандартные артефакты HTML, такие как якорные ссылки для отправки запросов GET и формы для отправки запросов POST.
Пример:
@Html.ActionLink("click me", "Foo", new { param = "123" })
будет генерировать якорную ссылку на передачу действия контроллера Foo param=123
как параметр строки запроса:
<a href="/home/foo?param=123">click me</a>
и следующее:
@using (Html.BeginForm("Foo", "Home"))
{
@Html.TextBoxFor(x => x.Name)
<input type="submit" value="OK">
}
сгенерирует HTML-форму, позволяющую вам POST к действию контроллера Foo некоторую информацию:
<form action="/Home/Foo" method="post">
<input type="text" id="Name" name="Name" value="" />
<input type="submit" value="OK" />
</form>
Полезные ресурсы со многими учебниками и видео для изучения ASP.NET MVC:
Лично id выполняет логику в контроллере или заставляет контроллер вызывать класс бизнес-логики, который выполняет всю работу за вас. контроллер вернет вид. Передайте модель в ваше представление из контроллера, а затем передайте модель из представления в частичное представление (MVC-эквивалент пользовательского элемента управления)
это будет означать, что в View/ Partial View нет логики, и будет означать, что вы можете визуализировать модель очень чистым способом
Имеет ли это смысл?
Я также рекомендую проект Скотта Хансельмана NerdDinner. Это отличный проект для изучения инфраструктуры ASP.NET MVC.
Также прочитайте и перечитайте ответ Дарина Димитрова. Он содержит основы обработки данных в MVC.
Вы, похоже, слишком привязаны к жизненному циклу страницы WebForms.
Внешняя методология программирования для MVC принципиально отличается от WebForms. Это больше похоже на Ruby On Rails.
Некоторые ресурсы, которые помогут вам изучить MVC:
ITT должен помочь вам
http://www.asp.net/mvc/videos/how-do-i-work-with-data-in-aspnet-mvc-partial-views