管理移动和Web浏览器的路由

时间:2016-08-01 19:27:53

标签: asp.net-mvc routing

我们正在尝试为MVC应用创建两个视图。移动和网络

这是我们遵循的两个链接

  1. Handling routing for both Desktop & Mobile Controllers in one instance of ASP.NET MVC
  2. Mixing ASP.NET MVC Display Mode Providers and Routing Rules
  3. 创建了Account / Login.cshtml页面和Account / Login.Mobile.cshtml页面(具有不同的布局)。创建了默认路由

    routes.MapRoute(
       name: "DefaultMobile",
       url: "mobile/{controller}/{action}/{id}",
       defaults: new
                 {
                     mobile = true,
                     controller = "Home",
                     action = "Index",
                     id = UrlParameter.Optional
                 }
    );
    

    但问题是我们正在使用routes.MapMvcAttributeRoutes();并生成\login等网址。有没有办法强制mobile/login获取移动视图。如果网址以' / mobile /'?

    开头,会强制路由显示移动视图

    还是有其他办法吗?

1 个答案:

答案 0 :(得分:1)

您应该能够使用属性路由指定2个路由定义,一个用于正常登录,一个用于移动

[Route("{type}/Login")]
[Route("Login")]
public ActionResult Login(string type = "")
{
    var isMobile = String.Equals(type,"mobile",StringComparison.OrdinalIgnoreCase);

   // to do : Return something
}