MVC路由和属性路由

时间:2017-04-23 13:12:16

标签: asp.net-mvc asp.net-mvc-5 routeattribute

我试图让一些路由工作,但我似乎在某个地方犯了一个错误,看不到它。第二组眼睛或对我做错的解释将不胜感激。

物理路径:

/Views/Reports/Awards/Index.cshtml

所需路线: /报告/奖

我的第一次尝试是做一个经典的路线图(见评论代码),并注意到我确实打开了routes.MapMvcAttributeRoutes():

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.IgnoreRoute("wcf/{resource}.svc/{*pathInfo}");
        routes.IgnoreRoute("wcf/{resource}.svc");
        routes.MapMvcAttributeRoutes();
        // routes.MapRoute(
        //    name: "Reports",
        //    url: "Reports/{controller}/{action}/{id}",
        //    defaults: new { controller = "Awards", action = "Index", id = UrlParameter.Optional }
        //);
        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

    }

“传统”路线图不起作用,这是我偶然发现属性路由并决定给出一个镜头。这是控制器的样子:

[RoutePrefix("Reports/Awards")]
public class AwardsController : Controller 
{

    [Route]
    public ActionResult Index()
    {
}

如果我移动奖励文件夹的物理位置,一切似乎都有效。 视图\奖\ Index.cshtml

物理路径中的断开连接是什么?我应该真正实施区域吗? (我真的不想这样做)

谢谢, 克里斯

0 个答案:

没有答案