Как добавить логику в элемент управления User View в MVC 3? - PullRequest
0 голосов
/ 27 января 2011

User View Control не имеет кода позади. Итак, где / как я должен сделать events элементов?

Я хочу понять логику управления в MVC ...

Ответы [ 5 ]

7 голосов
/ 27 января 2011

В 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-форму, позволяющую вам отправлять в контроллер Foo некоторую информацию:

<form action="/Home/Foo" method="post">
    <input type="text" id="Name" name="Name" value="" />
    <input type="submit" value="OK" />
</form>

Полезные ресурсы со множеством учебников и видео для изучения ASP.NET MVC:

1 голос
/ 27 января 2011

Лично id выполняет логику в контроллере или заставляет контроллер вызывать класс бизнес-логики, который сделает всю работу за вас. контроллер вернет вид. Передайте модель в ваше представление из контроллера, а затем передайте модель из представления в частичное представление (MVC-эквивалент пользовательского элемента управления)

это будет означать, что в View / Partial View нет логики, и будет означать, что вы можете визуализировать модель очень чисто

имеет ли это смысл?

0 голосов
/ 27 января 2011

Я также рекомендую проект Скотта Хансельмана NerdDinner. Это отличный проект для изучения инфраструктуры ASP.NET MVC.

Также прочитайте и перечитайте ответ Дарина Димитрова. Он содержит основы обработки данных в MVC

0 голосов
/ 27 января 2011
0 голосов
/ 27 января 2011

Вы, похоже, слишком привязаны к жизненному циклу страницы WebForms.

Методология программирования на поверхности для MVC принципиально отличается от WebForms. Это больше похоже на Ruby On Rails.

Некоторые ресурсы, которые помогут вам изучить MVC:

Официальный веб-сайт MVC

Проект Скотта Хансельмана NerdDinner

...