更改RouteConfig以显示长名称?

时间:2014-12-12 01:19:38

标签: asp.net-mvc asp.net-mvc-routing

有没有办法编辑路由配置以获得长丑陋的名字?这是VS2015的默认路线

** RouteConfig:** MVC 5模板

 public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }

更新澄清:

类似这样的事情

domain.com/blog/index.cshtml    // < -- I know this isn't correct

而不是这个

domain.com/blog

3 个答案:

答案 0 :(得分:1)

您不能这样做,因为您访问的资源不是Index.cshtml,而是&#34;索引&#34;行动。该操作返回ViewResult,它使用View Engine搜索要呈现的页面。该页面可以位于控制器目录,共享目录中,也可以是.cshtml,.vbhtml等。

Server Error in '/' Application.

The view 'Index' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/Home/Index.aspx
~/Views/Home/Index.ascx
~/Views/Shared/Index.aspx
~/Views/Shared/Index.ascx
~/Views/Home/Index.cshtml
~/Views/Home/Index.vbhtml
~/Views/Shared/Index.cshtml
~/Views/Shared/Index.vbhtml

答案 1 :(得分:1)

在MVC中,如果要在路由中映射物理文件,则默认情况下mvc会忽略您的路由部分。因此,您可以在路由中映射index.cshtml文件。

您可以像这样编写代码:

public static void RegisterRoutes(RouteCollection路由)     {         routes.IgnoreRoute(&#34; {资源}个.axd / {*} PATHINFO&#34);

    routes.MapRoute(
        name: "Default",
        url: "{controller}/Details.aspx",
        defaults: new { controller = "Blog", action = "Index", id = UrlParameter.Optional }
    );
}

答案 2 :(得分:1)

您必须遵循MVC URL模式,但您可以在URL中更改控制器名称和控制器方法名称。假设控制器名称为ILoveMyVeryBigNameController,控制器方法名称为IsMyControolerMethodNameIsToUgly,域名为:domain.com,然后在RouteConfig.cs中

// ILoveMyVeryBigNameController的路由映射             routes.MapRoute(name:&#34; ILoveMyVeryBigName&#34;,url:&#34; ILove / {action} / {id}&#34;,                 默认值:new {controller =&#34; ILoveMyVeryBigNameController&#34;,id = UrlParameter.Optional});

上述路由映射必须在常规路由映射之前放置

并在控制器方法中放置属性: 〔路线(&#34; ILOVE /丑/ {ID}&#34)] public ActionResult IsMyControolerMethodNameIsToUgly(string id)...

注意:我相信您使用的是MVC 5或以上版本

感谢
Raviranjan