使用mvc开发了一个独立的站点(wechat),但是最后要和并到另外一个站点下(admin),但是外部访问要使用另一个站点(admin)的二级域名
考虑之后采用mvc路由机制来实现(这也要考虑),代码实现是这样的,请见下图:
大致的结构就是这样,wechat文件夹下的是原先独立的站点,现在放在admin站点下了。
当时考虑的要用二级域名是基于微信支付方面的考虑。
路由机制如下:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.Add("DomainRouteForWeChat", new DomainRoute(
"wechat.XXXXXXX.net", // 固定的二级域名
"{controller}/{action}/{id}", // URL with parameters
new
{
area = "wechat",
controller = "Search",
action = "searchbranch",
id = "",
Namespaces = new string[] { "EJPMS.Web.Admin.Areas.WeChat.Controllers" }
} // Parameter defaults 指定的有限访问的controller
)); routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
); }
html:中的href访问路径,不需要使用决定定位到wechat文件夹下了,因为路由里已经设置了,只需要指定wechat下的controller就行,
<a href="/UserCenter/UserCenter" style="color:#333;">XXXXXX</a>
<a href="/Controller/Action" style="color:#333;">XXXXXX</a>
//你能不能看懂我不知道,反正我是信了。
js:中的onclick也做了同样的配置
window.location.href = "/Search/Branchdetail";
window.location.href = "/Controller/Action";
但是问题来了,这样在线上访问是没有问题了,但是线下调试的时候就会提示路径错误,因为路径中总是少一个wechat
这个问题现在准备使用本地中设置电脑的hosts文件,设置本地域名来实现,但是设置的时候需要注意hosts不能设置端口号这个问题,这个解决方案还没有验证,
我滚去验证了...