如何将URL映射更改为路由?

时间:2014-10-14 09:38:53

标签: asp.net-mvc-4

我的网站上有一个帮助页面,用户可以使用此网址查看

www.mydomain/home/help

现在我希望我的用户在浏览器中看到此网址

www.mydomain/help

我的控制器名称是“home”,我的操作名称是“help”我可以通过在web.config上使用URL映射来处理它并且它工作正常

<urlMappings enabled="true">
   <add url="~/Help" mappedUrl="~/Home/Help"/>
 </urlMappings>

但是如果我想用我的路线处理它,我怎么能改变我的路线或添加什么路线,我添加了这条路线,但它不起作用

 routes.MapRoute(
            name: "myroute",
            url: "home",
            defaults: new { controller = "Home", action = "Help" }
        );

我的路线有什么问题?

2 个答案:

答案 0 :(得分:1)

自动将http://yourdomain.com/help映射到http://yourdomain.com/home/help

案例1: 如果您在配置中使用<urlMapping />

<urlMappings enabled="true">
   <add url="~/Help" mappedUrl="~/Home/Help"/>
 </urlMappings>

url模板应该告诉控制器和动作参数映射,更改网址如下:

routes.MapRoute(
            name: "myroute",
            url: "{controller}/{action}",
            defaults: new { controller = "Home", action = "Help" }
        );

案例2:  如果没有<urlMapping />,您可以使用下面的MapRoute进行管理

routes.MapRoute(
            name: "HelpRoute",
            url: "help/{controller}/{action}",
            defaults: new { controller = "Home", action = "Help" }
        );

有关路由示例的详细信息,请参阅下面的页面

  

http://msdn.microsoft.com/en-us/library/vstudio/cc668201(v=vs.100).aspx

答案 1 :(得分:1)

您可以为yourdomain.com/help

创建特定路线
 routes.MapRoute(
     name: "Help",
     url: "help",
     defaults: new { controller = "Home", action = "Help" }
 );