2011-01-26 4 views
0

User View Control не имеет кода. Итак, где/как я должен делать events элементов?Как добавить логику в элемент управления пользователя в MVC 3?

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

+0

Я начинаю изучать ASP.NET MVC, я мог бы быть слишком привязаны к веб-форм ... Я не знаю точно, что я должен искать, чтобы узнать, как создавать элементы управления на MVC. Ссылка на некоторую документацию об этом будет приятной ... – BrunoLM

ответ

7

Там нет пользовательских элементов управления в MVC, так что вы не должны беспокоиться о логике управления. В MVC нет PostBacks. В 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-искусство ifacts, такие как привязывающие ссылки для отправки запросов 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:

1

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

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

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

0

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

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

Некоторые ресурсы, чтобы помочь вам научиться MVC являются:

Official MVC Web site

Scott Hanselman's NerdDinner project

0

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

также читать и перечитывать ответ Дарин Димитрова .. он содержит основы того, как данные обрабатываются в MVC