Asp.net mvc asp.net mvc url路由-子文件夹名称
我想创建一个url,如下所示:Asp.net mvc asp.net mvc url路由-子文件夹名称,asp.net-mvc,url-routing,Asp.net Mvc,Url Routing,我想创建一个url,如下所示: 通知、运行状况和策略是控制器 因此,我制作了一个新的url路线图,如下所示: routes.MapRoute( "News", "news/{controller}/{action}/{id}", new { controller = "Announcement", action = "Index", id = "" } ); 它工作正常,但以下两个URL显示相同的页面: 我想阻止第二个url 我该怎么办 谢谢 Kwon如果仍设置了默认路
routes.MapRoute(
"News",
"news/{controller}/{action}/{id}",
new { controller = "Announcement", action = "Index", id = "" }
);
它工作正常,但以下两个URL显示相同的页面:
Kwon如果仍设置了默认路由,则需要删除它或添加路由约束,使其与新闻路径不匹配 删除此项:
routes.MapRoute( "Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" } );
或添加约束:
routes.MapRoute( "Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" },
new { controller = "(Home|Other)" } );
该约束将允许默认路由仅匹配主控制器和其他控制器,而不匹配通知、运行状况或策略(或其他相关内容) 如果仍设置了默认路由,则需要删除它或添加路由约束,使其与新闻路径不匹配 删除此项:
routes.MapRoute( "Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" } );
或添加约束:
routes.MapRoute( "Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = "" },
new { controller = "(Home|Other)" } );
该约束将允许默认路由仅匹配主控制器和其他控制器,而不匹配通知、运行状况或策略(或其他相关内容) 如果存在任何默认路由映射,则将其移动到映射的末尾。如果没有帮助,那么您可以尝试。如果有任何默认路由映射,请将其移动到映射的末尾。如果这没有帮助,那么您可以尝试。从逻辑上讲,第二个url不应该起作用。因为news是您的应用程序名,它托管在IIS中,我想您可能已经将其放在默认网站中了。因此,如果您正在访问应用程序,URL将始终 新闻/controller/action 如果你给我这个 ,它不知道要查看哪个应用程序 我建议你创建一个虚拟目录“新闻”,如果你还没有创建一个,然后在那里发布所有内容。 还要确保尚未在Inetpub\wwwroot\目录中发布应用程序文件
我正在等待您的答复。从逻辑上讲,第二个url不应该工作。因为news是您的应用程序名,它托管在IIS中,我想您可能已经将其放在默认网站中了。因此,如果您正在访问应用程序,URL将始终 新闻/controller/action 如果你给我这个 ,它不知道要查看哪个应用程序 我建议你创建一个虚拟目录“新闻”,如果你还没有创建一个,然后在那里发布所有内容。 还要确保尚未在Inetpub\wwwroot\目录中发布应用程序文件
我正在等待您的答复。所以发生的事情是第一个URL在您的自定义路由上匹配,而第二个URL在默认路由上匹配。@Graphain--这是我的怀疑,但是如果不看完整的代码,就很难知道。@kwon--“Other”只是另一个控制器的示例,因为我不知道您的控制器的名称。如果你除了“新闻”中的控制器没有其他控制器,那么你真的根本不需要“默认”路由;很有道理!因此,发生的情况是第一个URL在自定义路由上匹配,而第二个URL在默认路由上匹配。@Graphain--这是我的怀疑,但如果看不到完整的代码,很难知道。@kwon--“Other”只是另一个控制器的示例,因为我不知道您的控制器的名称。如果你除了“新闻”中的控制器没有其他控制器,那么你真的根本不需要“默认”路由;很有道理!