我想创建一个网址,如下所示:
公告,健康,政策是控制者
所以我制作了一个像这样的新网址路线图:
routes.MapRoute(
"News",
"news/{controller}/{action}/{id}",
new { controller = "Announcement", action = "Index", id = "" }
);
它工作正常但是,在两个网址显示相同页面之后:
我想阻止第二个网址。
我该怎么办?
由于 权
答案 0 :(得分:10)
如果您仍然设置了默认路线,则需要将其删除或添加路线约束,以使其与您的新闻路径不匹配。
删除它:
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)" } );
约束将允许默认路由仅匹配控制器Home和Other,但不匹配Announcment,Health或Policy(或其他任何内容)。
答案 1 :(得分:1)
如果有任何默认路由映射,则将其移动到映射的末尾。如果这没有帮助,那么您可以尝试Url Routing Debugger。
答案 2 :(得分:0)
从逻辑上讲,第二个网址不应该有用。因为新闻是您在IIS中托管的应用程序名称,我想您可能已将其放在默认网站中。因此,如果您正在访问应用程序,则URL始终为
http://localhost/ 新闻强> /控制器/动作
如果你给这个
http://localhost/controller/action,它不知道要查找哪个应用程序。
我建议你创建一个虚拟目录'news',如果你还没有创建一个,然后在那里发布所有内容。 另外,请确保您尚未在Inetpub \ wwwroot \ directory中发布您的应用程序文件。
等待你的回复继续。