asp.net-mvc – 多租户Razor页面
我正在尝试设置Razor Pages路由,以允许为不同的租户呈现不同的视图.
我有一个目录结构如下: /Pages Test.cshtml.cs /Tenant1 Test.cshtml /Tenant2 Test.cshtml 鉴于我已经能够确定需要哪个租户,如何配置路由以将一些路径(例如localhost:8080 / Test)映射到Tenant1 / Test或Tenant2 / Test视图. 解决方法
使用动态视图内容(通过部分视图).
使用此解决方案,“测试”页面将根据用于调用它的路由动态加载不同的视图. 这意味着您只有一个测试页面,但在cshtml文件中,您将从局部视图中获取内容(更多内容在一秒内). 首先,你需要重命名这些文件…. /Pages Test.cshtml.cs /Tenant1 _Test.cshtml // note it is prefixed with an underscore! /Tenant2 _Test.cshtml // prefixed with an underscore too.
然后你添加一些逻辑来渲染局部视图…… Test.cshtml @{ switch(...) // used a switch statement to illustrate the solution { case "Tenant1": await Html.PartialAsync("~/Pages/Tenant1/_Test.cshtml"); break; case "Tenant2": await Html.PartialAsync("~/Pages/Tenant2/_Test.cshtml"); break; default: throw new NotImplementedException(); } } 您可以阅读有关部分视图here的信息. 额外:使用相同的页面模型. /Pages/Test.cshtml.cs namespace Foo.Pages { public class MySharedTestModel : PageModel { ... } } /Pages/Tenant1/Test.cshtml和/Pages/Tenant2/Test.cshtml @page @using Foo.Pages @model MySharedTestModel ... (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 控制Web / MSDeploy发布的内容:PDF文件?
- asp.net – CalendarExtender定位问题
- asp.net-mvc – NHibernate:我如何XmlSerialize一个ISet?
- asp.net mvc长时间操作
- 使用ASP.Net Core MVC和ASP.Net Web Api在Angular2 App中进
- ASP.NET主题样式表渲染
- asp.net-core – 在.Net 5 Core beta2中找不到System.Conve
- asp.net-mvc – 在ASP.NET MVC中的NHibernate会话管理
- asp.net – Visual Studio – 为什么.ASPX文件比.ASPX.CS文
- asp.net-mvc-3 – Razor reseverd words