有没有办法编辑路由配置以获得长丑陋的名字?这是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
答案 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