Не следует использовать какие-либо серверные элементы управления (runat="server"
) в приложении ASP.NET MVC, поскольку они полагаются на ViewState и PostBack, которые больше не существуют в ASP.NET MVC.Единственное исключение составляет <asp:Content>
панели, используемые механизмом просмотра веб-форм для реализации главных страниц.Также нет понятия связывания.
В ASP.NET MVC у вас есть модель, контроллер и представление.Контроллер заполняет некоторую модель и передает ее представлению, которое будет показано.Само представление может использовать помощники HTML для создания простой разметки или включать другие частичные представления для более сложных сценариев.
Итак, вы начнете с определения модели:
public class MyViewModel
{
public double Progress { get; set; }
}
затем у вас есть контроллер, который будет манипулировать этой моделью вида:
public class HomeController: Controller
{
public ActionResult Index()
{
var completed = 5; // get this from somewhere
var total = 10; // get this from somewhere
var model = new MyViewModel
{
Progress = (1.0 * completed / total)
}
return View(model);
}
}
и, наконец, у вас будет строго типизированное представление для этой модели, в котором будет отображаться разметка:
<%@ Page
Language="C#"
MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewPage<AppName.Models.MyViewModel>"
%>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Progress</h2>
<div><%= Html.DisplayFor(x = x.Progress)</div>
</asp:Content>