C# MVC路由模糊
我有一条心灵之路:C# MVC路由模糊,c#,asp.net-mvc,C#,Asp.net Mvc,我有一条心灵之路:Home/signUp.aspx 和Controller/HomeController.cs(与Views/home/index.aspx相关) 我的路由在global.asax中配置: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); ro
Home/signUp.aspx
和Controller/HomeController.cs(与Views/home/index.aspx相关)
我的路由在global.asax中配置:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
routes.IgnoreRoute("{resource}.ashx/{*pathInfo}");
//settings - manage toolbars
routes.MapRoute("SettingsManageToolbars", "home/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional });
routes.MapRoute(
"Default",
// Route name
"toolbar/apps/{controller}/{action}/{id}",
// URL with parameters
new { controller = "Home", action = "Index", id = "" }
// Parameter defaults
);
}
当我浏览到home\signup.aspx
我得到一个带有“目录内容”的文本页面
如何修复此路由?为什么您的家庭控制器是aspx文件?尝试将其设置为HomeController.cs
我建议删除当前控制器并通过上下文菜单(右键单击,添加)添加另一个控制器。默认情况下,路由不会处理映射到Web服务器上现有物理文件的请求。即使请求与定义的模式(如{controller}/{action}/{id})匹配,路由也不会处理该请求 如果希望路由处理所有请求,甚至是指向文件的请求,可以通过将RouteCollection对象的RouteExistingFiles属性设置为true来覆盖默认行为。当您将此值设置为true时,所有与定义模式匹配的请求都由路由处理
在MVC中,您通常不再在路径中使用“.aspx”-该路由用于将url转换为对控制器和操作的调用;然后它将调用一个视图-它是.aspx或.ascx或其他什么。我不确定您是否完全理解MVC的目的。我也不确定我是否真的理解你的问题。删除routes.IgnoreRoute(“{resource}.aspx/{*pathInfo}”);那我为什么要进入
目录内容
页面?