хорошо, я изучил учебник Вальтера и запустил базовый сайт MVC.
Необходимые файлы:
Global.asax
App_Code\Global.asax.cs
App_Code\Controller.cs
Views\HelloWorld\Sample.aspx
web.config
Вот и все.
Внутри Global.asax я предоставляю этот шаблон:
<%@ Application Inherits="MvcApplication1.MvcApplication" Language="C#" %>
И этот класс MvcApplication
определен в модуле Global.asax.cs, который должен быть помещен в каталог App_Code. Содержание выглядит так:
using System.Web.Mvc;
using System.Web.Routing;
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{arg}", // URL with parameters
new { // Parameter defaults
controller = "HelloWorld",
action = "Index",
arg = "" } );
}
protected void Application_Start()
{
RegisterRoutes(RouteTable.Routes);
}
}
Controller.cs предоставляет логику для обработки различных запросов. В этом простом примере класс контроллера выглядит следующим образом:
using System.Web.Mvc;
namespace MvcApplication1.Controllers
{
public class HelloWorldController : Controller
{
public string Index()
{
return "Hmmmmm...."; // coerced to ActionResult
}
public ActionResult English()
{
return Content("<h2>Hi!</h2>");
}
public ActionResult Italiano()
{
return Content("<h2>Ciao!</h2>");
}
public ViewResult Sample()
{
return View(); // requires \Views\HelloWorld\Sample.aspx
}
}
}
Класс Controller должен иметь имя XxxxxController
, где часть Xxxxx определяет сегмент в пути URL. Для контроллера с именем HelloWorldController
сегмент пути URL равен HelloWorld
. Каждый открытый метод в классе Controller является action ; метод вызывается, когда имя этого метода включено в другой сегмент в пути URL. Таким образом, для вышеприведенного контроллера эти URL приведут к вызову различных методов:
- http: / / server / root / HelloWorld («действие» по умолчанию)
- http: / / server / root / HelloWorld / Index (тоже самое, что и выше)
- http: / / server / root / HelloWorld / English
- http: / / server / root / HelloWorld / Italiano
- http: / / server / root / HelloWorld / Sample (представление, реализованное как Sample.aspx)
Каждый метод возвращает Результат действия , один из следующих: View (страница aspx), Redirect, Empty, File (различные параметры), Json, Content (произвольный текст) и Javascript.
Страницы просмотра, такие как Sample.aspx в данном случае, должны быть получены из System.Web.Mvc.ViewPage
.
<%@ Page Language="C#"
Debug="true"
Trace="false"
Inherits="System.Web.Mvc.ViewPage"
%>
Вот и все! Удаление указанного выше содержимого в IIS vdir дает мне рабочий сайт ASPNET MVC.
(Ну, мне также нужен файл web.config, в котором 8k конфигурации. Весь этот исходный код и конфигурация доступны для просмотра или загрузки. )
А потом я могу добавить другой статический контент: js, css, изображения и все, что мне нравится.