从另一个web项目asp.net mvc访问一个Web项目

时间:2015-08-03 17:31:45

标签: asp.net-mvc asp.net-mvc-4

问题

在asp.net mvc中,我在一个解决方案中有两个mvc应用程序,一个是网站,第二个是管理面板。我在网站项目中创建了一个名称为管理员的文件夹,并在网站项目中粘贴管理项目,我现在想要访问管理员部分:

  

http://localhost/website/admin

和nopcommerce一样,但我没有得到nopcommerce如何在他们的项目中配置这个东西。

帮帮我

2 个答案:

答案 0 :(得分:1)

正如其他人所说,最好使用ares来简化项目,但如果你想让它们分开,我认为你遇到的问题是更新你的路由。

默认情况下,MVC应用程序具有以下路由配置(可在Globals.asax.cs文件中找到):

    routes.MapRoute(
        "Default",                                              // Route name
        "{controller}/{action}/{id}",                           // URL with parameters
        new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
    );

您需要做的是查看您尝试连接的控制器,并为该控制器添加路由。为了举个例子,我假设您的控制器被称为" AdminController":

    routes.MapRoute(
       name: "AdminController",
       routeTemplate: "website/admin/{action}",
       defaults: new { controller = "Admin", action = "Index"}
    );

    routes.MapRoute(
        "Default",                                              // Route name
        "{controller}/{action}/{id}",                           // URL with parameters
        new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
    );

此示例显示如何将所需路线 - http://localhost/website/admin - 映射到"索引"行动在" AdminController"宾语。

有关更深入的ASP.Net路由示例,您可以查看文档here

更新:查看相关示例库(NopCommerce)后,看起来他们正在使用显式区域注册。这可以在' src / Presentation / Administration / AdminAreaRegistration.cs'中找到。 :

using System.Web.Mvc;

namespace Nop.Admin
{
    public class AdminAreaRegistration : AreaRegistration
    {
        public override string AreaName
        {
            get
            {
                return "Admin";
            }
        }

        public override void RegisterArea(AreaRegistrationContext context)
        {
            context.MapRoute(
                "Admin_default",
                "Admin/{controller}/{action}/{id}",
                new { controller = "Home", action = "Index", area = "Admin", id = "" },
                new[] { "Nop.Admin.Controllers" }
            );
        }
    }
}

希望这能让您更好地了解这是如何完成的。

答案 1 :(得分:0)

本教程清除了我对如何在asp.net mvc中配置多个项目作为区域的困惑。

http://nileshhirapra.blogspot.no/2012/02/aspnet-mvc-pluggable-application.html?m=1