asp.net-mvc-3 – MVC 3子域路由
在asp.net MVC 3网站,我想为用户创建网上商店。 我试过一些路由工作,但失败了。我正在研究一个解决方案,但找不到任何适当的解决方案。 我的目的是;如果我可以添加一个路由来管理任何试图找到一个子域的请求,我会检查它是否是一个用户在线商店名称,并获得动态数据在播放。 需要路由帮助:)谢谢。 解决方法
我发现了一个非常强大的方式。所以检查这:)
首先为Visual Studio的应用程序开发服务器,你必须编辑’主机’文件。 以管理员身份打开记事本。为您的域添加任何名称 127.0.0.1 mydomain.com 和你需要在开发中使用什么。 之后给你的web项目一个特定的端口号。例如“45499”。通过这种方式,您将能够通过在浏览器中写入请求到您的项目: mydomain.com:45499 这是准备步骤。让我们得到答案。 通过使用IRouteConstraint类,您可以创建您的路由约束。 public class SubdomainRouteConstraint : IRouteConstraint { private readonly string SubdomainWithDot; public SubdomainRouteConstraint(string subdomainWithDot) { SubdomainWithDot = subdomainWithDot; } public bool Match(HttpContextBase httpContext,Route route,string parameterName,RouteValueDictionary values,RouteDirection routeDirection) { var url = httpContext.Request.Headers["HOST"]; var index = url.IndexOf("."); if (index < 0) { return false; } //This will bi not enough in real web. Because the domain names will end with ".com",".net" //so probably there will be a "." in url.So check if the sub is not "yourdomainname" or "www" at runtime. var sub = url.Split('.')[0]; if(sub == "www" || sub == "yourdomainname" || sub == "mail") { return false; } //Add a custom parameter named "user". Anything you like :) values.Add("user",); return true; } } 并在任何你想使用的路线中添加你的约束。 routes.MapRoute( "Sub",// Route name "{controller}/{action}/{id}",// URL with parameters new { controller = "SubdomainController",action = "AnyActionYouLike",id = UrlParameter.Optional },new { controller = new SubdomainRouteConstraint("abc.") },new[] { "MyProjectNameSpace.Controllers" } ); 将此路由放在默认路由之前。就这样。 在约束中,您可以执行任何操作,如检查子域名是客户端商店名称或其他。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – Web.Config文件中的多行文本
- asp.net-mvc – EditorFor()和additionalViewData:如何在h
- ASP.Net:为什么我的按钮的点击/命令事件没有在转发器中绑定
- IIS中的 Asp.Net Core 和 dotnet watch
- asp.net-mvc – 返回ASP.Net Core MVC中的上一页
- asp.net-mvc – MVC 5具有身份验证模式的外部身份验证=表单
- asp.net – 为WebSite添加配置转换
- asp.net – 反伪造cookie令牌和表单字段令牌在MVC 4中不匹配
- asp.net-mvc-5.1 – 如何在EnumDropDownListFor中设置所选值
- asp.net-mvc – 将url字符串作为参数传递给mvc控制器