如果有人可以帮助我解决这个问题,那就太好了,因为我是 Web 开发和 ASP.NET MVC 的新手。我的目标是设计一个可以帮助用户创建自己的迷你网站的 MVC 应用程序。每个用户都将拥有自己的迷你网站和一个管理面板来更改其网站的页面和模板。我认为有一些脚本可以实现类似的功能,但我们需要根据我们的特定要求创建自己的脚本。为了实现这个目标,我创建了一个主 mvc 3 应用程序,并在其下创建了一个区域作为站点。我们希望用户拥有自己的子域 URL,例如 www.site1.mainsite.com,其中 site1 是用户的迷你站点的名称。为此,我添加了 2 条路线,一条用于主站点,另一条用于区域,例如
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new[] { "MainSite.UI.Controllers" }
);
区内登记
context.MapRoute(
"Sites_default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new {controller = new SiteConstraint()},
new[] { "MainSite.UI.Areas.Site.Controllers" });
它们都具有相同的 url 类型,但区域路由有一个约束,我添加了喜欢
var url = httpContext.Request.Headers["HOST"];
var storeName = url.Split('.')[1];
var match = storeName != "mainsite";
return match;
到目前为止它的工作,但我不认为它是一个好的设计。现在除此之外,我还需要添加 2 个区域,一个是站点管理员,另一个是博客。实现这一目标的最佳方法应该是什么?
- 子域网址应定向到区域“站点”
- 子域 url/Admin 应路由到区域“siteadmin”
- 域/博客应该被路由到博客区域。
- 域其他 url 应由主控制器处理
提前致谢