Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC为移动控制器配置路由_C#_Asp.net_Asp.net Mvc 4_.net 4.0 - Fatal编程技术网

C# MVC为移动控制器配置路由

C# MVC为移动控制器配置路由,c#,asp.net,asp.net-mvc-4,.net-4.0,C#,Asp.net,Asp.net Mvc 4,.net 4.0,在我的MVC 4 web应用程序中,如果我访问主页,我会调用以下url: 网站名称/主页 我现在将名为Mobile的子文件夹添加到Controllers文件夹中。如何配置路由以便能够像这样呼叫Mobile文件夹中的Home controller sitename/Mobile/Home 这是我的RegisterRoutes方法: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("

在我的MVC 4 web应用程序中,如果我访问主页,我会调用以下url:

网站名称/主页

我现在将名为Mobile的子文件夹添加到Controllers文件夹中。如何配置路由以便能够像这样呼叫Mobile文件夹中的Home controller

sitename/Mobile/Home

这是我的RegisterRoutes方法:

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 },
        namespaces: new string[] { "Test.Controllers" }
    );

    routes.MapRoute(
        name: "Mobile",
        url: "Mobile/{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
        namespaces: new string[] { "Test.Controllers.Mobile" }
    );


}

@dav_i是100%正确的,因为路线必须在另一条之前。移动设备的URL在URL中有移动设备,因此您必须在任何操作链接或重定向中有移动设备。。。所以理想情况下,在global.asax中,您应该尝试检测浏览器是否是移动的,并在其中重定向。。。但是你仍然需要在URL中管理移动设备。这是因为像Url.Action和Html.ActionLink这样的函数期望控制器和操作是完整的Url,这是:

@Url.Action("Action", "Control")
产生:

/Control/Action

因此,你必须处理好这件事。或者,您可以使用移动视图,而不必担心这一点。请参阅。

@dav_i是100%正确的,因为路线必须在另一条之前。移动设备的URL在URL中有移动设备,因此您必须在任何操作链接或重定向中有移动设备。。。所以理想情况下,在global.asax中,您应该尝试检测浏览器是否是移动的,并在其中重定向。。。但是你仍然需要在URL中管理移动设备。这是因为像Url.Action和Html.ActionLink这样的函数期望控制器和操作是完整的Url,这是:

@Url.Action("Action", "Control")
产生:

/Control/Action

因此,你必须处理好这件事。或者,您可以使用移动视图,而不必担心这一点。请参阅。

@dav_i是100%正确的,因为路线必须在另一条之前。移动设备的URL在URL中有移动设备,因此您必须在任何操作链接或重定向中有移动设备。。。所以理想情况下,在global.asax中,您应该尝试检测浏览器是否是移动的,并在其中重定向。。。但是你仍然需要在URL中管理移动设备。这是因为像Url.Action和Html.ActionLink这样的函数期望控制器和操作是完整的Url,这是:

@Url.Action("Action", "Control")
产生:

/Control/Action

因此,你必须处理好这件事。或者,您可以使用移动视图,而不必担心这一点。请参阅。

@dav_i是100%正确的,因为路线必须在另一条之前。移动设备的URL在URL中有移动设备,因此您必须在任何操作链接或重定向中有移动设备。。。所以理想情况下,在global.asax中,您应该尝试检测浏览器是否是移动的,并在其中重定向。。。但是你仍然需要在URL中管理移动设备。这是因为像Url.Action和Html.ActionLink这样的函数期望控制器和操作是完整的Url,这是:

@Url.Action("Action", "Control")
产生:

/Control/Action

因此,你必须处理好这件事。或者,您可以使用移动视图,而不必担心这一点。请参阅。

ASP.NET MVC路由依赖于订单,应该按照最具体到最通用的顺序进行

目前,如果您键入url
Mobile/Home/Index
,路由将尝试将其映射到:

  • 控制员:流动
  • 行动:回家
  • id:索引
使用默认路线,永远不要到达您想要的路线图


如果您交换
MapRoute
声明,MVC将看到它以“Mobile”开头,并按预期使用该路由。

ASP.NET MVC路由依赖于顺序,应该按照最具体到最通用的顺序进行

目前,如果您键入url
Mobile/Home/Index
,路由将尝试将其映射到:

  • 控制员:流动
  • 行动:回家
  • id:索引
使用默认路线,永远不要到达您想要的路线图


如果您交换
MapRoute
声明,MVC将看到它以“Mobile”开头,并按预期使用该路由。

ASP.NET MVC路由依赖于顺序,应该按照最具体到最通用的顺序进行

目前,如果您键入url
Mobile/Home/Index
,路由将尝试将其映射到:

  • 控制员:流动
  • 行动:回家
  • id:索引
使用默认路线,永远不要到达您想要的路线图


如果您交换
MapRoute
声明,MVC将看到它以“Mobile”开头,并按预期使用该路由。

ASP.NET MVC路由依赖于顺序,应该按照最具体到最通用的顺序进行

目前,如果您键入url
Mobile/Home/Index
,路由将尝试将其映射到:

  • 控制员:流动
  • 行动:回家
  • id:索引
使用默认路线,永远不要到达您想要的路线图



如果您交换
MapRoute
声明,MVC将看到它以“Mobile”开头,并按预期使用该路由。

尝试交换MapRoute调用。@dav_我应该把它作为一个答案。@DavidG我现在手指受伤了,所以我的WPM有点不对劲-答案已发布@dav_i没有理由打字慢,士兵!系好安全带p尝试交换MapRoute呼叫。@dav_我你应该把它作为一个答案。@DavidG我现在手指受伤了,所以我的WPM下降了一点-答案发布了@dav_i没有理由打字慢,士兵!系好安全带p尝试交换MapRoute呼叫。@dav_我你应该把它作为一个答案。@DavidG我现在手指受伤了,所以我的WPM下降了一点-答案发布了@dav_i没有理由打字慢,士兵!系好安全带p尝试交换MapRoute呼叫。@dav_我你应该把它作为一个答案。@DavidG我现在手指受伤了,所以我的WPM下降了一点-答案发布了@dav_i没有理由打字慢,士兵!系好安全带p问题是关于路由,而不是检测客户端类型。我用mobi的
URL回答了这个问题