Я только что установил RTW 1.0 платформы MVC. Я использовал RC2 в прошлом, чтобы пройти учебники. Теперь у меня есть проблема, когда базовая маршрутизация не работает, чего у меня не было в RC2.
Если я создаю новое приложение MVC в VS 2008, маршруты для домашней страницы не работают "из коробки".
Почему-то работает следующий URL
http://mydomain/
http://mydomain/Home/Index/1
Однако следующее не работает и выдает 404 ошибки.
http://mydomain/Home
http://mydomain/Home/Index
Мой метод RegisterRoutes используется по умолчанию и выглядит следующим образом
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
}
Мой HomeController.cs выглядит так
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MyNamespace.Controllers
{
[HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
public ActionResult About()
{
return View();
}
}
}
, а индексное представление - это просто сгенерированное по умолчанию значение
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="indexTitle" ContentPlaceHolderID="TitleContent" runat="server">
Home Page
</asp:Content>
<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">
<h2><%= Html.Encode(ViewData["Message"]) %></h2>
<p>
To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
</p>
</asp:Content>