代码之家  ›  专栏  ›  技术社区  ›  Derek Hunziker

ASP.NET MVC:是否可以将“家”移动到区域?

  •  2
  • Derek Hunziker  · 技术社区  · 14 年前

    最近的一次是使用以下方法注册我的家乡路线:

    context.MapRoute(
        "Home_default",
        "Home/{action}/{id}",
        new { controller="Home", action = "index", id = UrlParameter.Optional }
    );
    

    ... 但这不只是简单的www.mydomain.com/". 为此,我需要告诉我在Global.asax中的“catch all”路线,以某种方式将请求发送到我的家乡。简单地将area=“Home”添加到路由数据是行不通的。对“/”的请求仍在我的根目录中查找HomeController和视图。

    2 回复  |  直到 14 年前
        1
  •  0
  •   3Dave    14 年前

    你需要这样的路线

    context.MapRoute(
       "Home_root"
       ,"/"
       ,new { controller="Home", action="index", id=UrlParameter.Optional }
    );
    

    但是,当然,路线不能以“/”、“~”等开头。

    context.MapRoute(
       "Home_root"
       ,"default.aspx{*parameters}" /// or .htm, .asp, .html or whatever IIS may be adding 
       ,new { controller="Home", action="index", id=UrlParameter.Optional }
    );
    

    嗯。很匆忙,所以我没有试着编译这些。

        2
  •  0
  •   Derek Hunziker    14 年前
    // These additions allow me to route default requests for "~/" to the "home" area
    engine.ViewLocationFormats = new string[] { 
        "~/Views/{1}/{0}.aspx",
        "~/Views/{1}/{0}.ascx",
        "~/Areas/{1}/Views/{1}/{0}.aspx", // new
        "~/Areas/{1}/Views/{1}/{0}.ascx", // new
        "~/Areas/{1}/Views/{0}.aspx", // new
        "~/Areas/{1}/Views/{0}.ascx", // new
        "~/Views/{1}/{0}.ascx"
    };