在MVC主站点中添加子站点

如果在主站建站过程中,想通过主域名下的子路径名访问具有其它功能的子站点,例如主站域名www.csdn.net,子站域名为www.csdn.net/sub,可以在网站工程项目编写过程中通过添加“区域”来实现,区域名称即为网址中的子路径(当然也可以通过修改区域目录下的AreaRegistration.cs文件来重新定义子路径)。

 上述的网站项目在编译或发布时,会生成一个DLL文件,后续即使只改动某个区域中的代码,仍需要重新生成整个网站的这个DLL文件。

如果想在现有的主站点中添加子站点,并且想让子站点从主站点中独立出来,把子站点独立编译成一个DLL文件,当子站点内容改变时,只需重新编译子站点,然后把编译后的DLL文件上传主站点,可以借鉴“区域”的思路,将子站点设置成”区域“的方式实现。

 1.建立主站点Main,创建一个名为Main的Mvc项目,查看根目录下的Global.asax中有没有注册区域的语句,没有的补上。

 打开App_Start目录下的RouteConfig.cs文件,设置主站路由映射的命名空间。

using System.Web.Mvc;
using System.Web.Routing;

namespace Main {
    public class RouteConfig {
        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[] { "Main.Controllers" }
            );
        }
    }
}

2.建立子站点Sub。

新建子站点的Mvc项目,项目的.net版本一定要和主站点.net版本相同,名称为Sub,删除“App_Start"文件夹中的”RouteConfig.cs“和根目录下的”Global.asax“文件。

   在子站点根目录下添加一个类文件,命名为”SubAreaRegistration“,用于将子站点定义为一个”区域“,代码如下:

using System.Web.Mvc;

namespace Sub {
    public class SubAreaRegistration :AreaRegistration {
        public override string AreaName {
            get { return "Sub"; }
        }

        public override void RegisterArea(AreaRegistrationContext context) {
            context.MapRoute(
                "Sub_default",
                "Sub/{controller}/{action}/{id}",
                new {action="index",id=UrlParameter.Optional},
                namespaces:new string[] {"Sub.Controllers"}
            );
        }
    }
}

编译生成Sub,将Sub.dll复制到主站点的bin文件夹中,运行主站点即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值