【问题标题】:how to change area to seprate project by MapRoute in asp.net mvc如何在asp.net mvc中通过MapRoute将区域更改为单独的项目
【发布时间】:2015-09-28 21:45:07
【问题描述】:

如何在 asp.net mvc 中通过 MapRoute 将区域“Admin”更改为单独的项目,如图

我正在使用代码:

  namespace App.Web
    {
        public class RouteConfig
        {
            public static void RegisterRoutes(RouteCollection routes)
            {
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");    

                var route = routes.MapRoute(
                    "Admin_default",
                    "Admin/{controller}/{action}/{id}",
                    new { controller = "Home", action = "Index", area = "Admin", id = "" },
                    new[] { "app.Admin.Controllers" }
                );
                route.DataTokens["area"] = "Admin";

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

            }
        }
    }

但是当在浏览器中输入 url:http://localhost:27824/admin/home/index => 显示 app.Web.Controllers->home->index !! (app.Admin.Controllers->Home->索引不显示!!)

【问题讨论】:

    标签: c# asp.net asp.net-mvc asp.net-mvc-routing maproute


    【解决方案1】:

    您不能路由到其他项目。路线是特定于项目的。

    【讨论】:

    • nopcommerce 是如何做到这一点的?(nopcommerce.codeplex.com/SourceControl/latest)
    • 不确定您具体在说什么,但它们不是在项目之间路由。如果您只是想获取 URL,则可以仅从另一个项目中检索路由配置,但这并不重要。您必须使用反射来加载其他项目的程序集并使用它来创建 UrlHelper,但您甚至只能使用它获取相对 URL。如果项目在另一个域或虚拟目录或其他地方,则无法从不同的项目中知道这一点。
    猜你喜欢
    • 1970-01-01
    • 2015-01-30
    • 1970-01-01
    • 2016-05-29
    • 2011-04-27
    • 2012-10-06
    • 2012-10-05
    • 1970-01-01
    • 2019-01-16
    相关资源
    最近更新 更多