В 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: