我无法让MVC 5属性路由适用于Controller。我得到了404,我真的不确定我错过了什么。我在网上查了一大堆例子,据我所知,我已经100%跟踪了他们
我想要一个名为' CustomerServicePolicyController'对抗路线http://[site]/customer-service-policy/。
我正在使用MVC 5.这就是我所做的:
将其修改为以下内容:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
//enabling attribute routing
routes.MapMvcAttributeRoutes();
//convention-based routing
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "TTTA.Controllers" }
);
}
确保如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace TTTA.Controllers
{
[RoutePrefix("customer-service-policy")]
[Route("{action=index}")] //default action
public class CustomerServicePolicyController : Controller
{
public ActionResult Index()
{
return View();
}
}
}
确保我的View文件夹在那里并正确命名为" CustomerServicePolicy"。请注意,当这不起作用时,我也尝试将此文件夹重命名为" customer-service-policy"但同样的404!
确保我在View文件夹中有一个index.cshtml文件。
我认为应该这样做,但我每次访问http://[site]/customer-service-policy/时都会获得404。
我可以确认http://[site]/CustomerServicePolicy/也不再起作用,但如果删除Controller声明上方的属性,它会再次起作用。
我错过了什么?我打赌明显的事情......
我使用Visual Studio Express 2013 for web和现有的Web服务器 - IIS Express。
非常感谢提前。