And*_*ena 1 .net asp.net-mvc multi-tenant
我有一个多租户的应用程序,也就是说,我有多个客户端使用该应用程序并使用文件夹共享一个域.如下:
client1/ home/indexclient2/ home/index我不能使用区域,因为客户端不是静态的,他们注册,他们必须能够立即开始使用该应用程序.我不能使用子域名,因为在这种情况下我没有动态控制DNS.
话虽这么说,我如何实现自定义路由,以便每次构建传出URL时都不需要传递客户端名称?
也就是说,我希望这是真的:
@Url.Action("Index", "Home") -> www.mydomain.com/client1/home/index
Run Code Online (Sandbox Code Playgroud)
没有传递client1,有些东西可以解决,client1因为当我构建这个URL时,这个字符串将是当前路由值的值,因为我已经在client1
我怎样才能做到这一点?
routes.MapRoute(
"Default",
"{client}/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)
现在,当您使用时导航到视图/client1/Home/Index 内部以及是否在Index.cshtml视图内部:
@Html.ActionLink("foo", "About")
Run Code Online (Sandbox Code Playgroud)
这会产生:
<a href="/client1/home/About">foo</a>
Run Code Online (Sandbox Code Playgroud)
Url.Action在Index操作中使用帮助程序也是如此.它将保留client原始请求的路由值.
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |