如何在多个应用程序或网站中重用区域、控制器、视图、模型、路由

发布于 2024-11-19 16:05:33 字数 306 浏览 5 评论 0原文

我有一个测试解决方案,其中只有一个名为“管理”的区域。

我想在许多其他 Web 应用程序中重用 Admin。

我在 IIS 中设置了一个 Web 应用程序,然后添加了一个来自 Areas\Admin 的虚拟应用程序 /Admin

当我导航到 /Admin 时,我看到一个目录列表。当我尝试点击控制器时,/Admin/News。我收到 404 错误。即使代码位于 global.asax 中,这些区域也可能未注册。然而,我确信我的做法是错误的。

请提出更改建议以使这种情况发挥作用。

I have a test solution which only has one area called Admin.

I would like to reuse Admin across a number of other web applications.

I have a web application setup in IIS, I have then added a virtual application, /Admin coming from Areas\Admin.

When I navigate to /Admin, I see a directory listing. When I try to hit a controller, /Admin/News. I get a 404 error. It could be that the areas are not registering, even though the code is there in the global.asax. However, I am sure I am going about this all wrong.

Please suggest changes for this situation to work.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

若沐 2024-11-26 16:05:34

区域不能按您想象的方式重用(使用虚拟目录)。它们只是根 Web 应用程序不可分割的一部分。它们只是嵌入到根应用程序路由中,没有它就无法运行。通过将虚拟目录指向 Areas 文件夹,您表明这是一个单独的 ASP.NET 应用程序,但事实并非如此。

有一些项目,例如 MvcContrib Portable Areas< /a> 旨在解决这些问题。值得一看。此外,如果您想将一些 Razor 视图嵌入到可以在不同 ASP.NET MVC 3 应用程序之间重用的程序集中,您可以查看 以下博客文章

Areas cannot be reused the way you think (using virtual directories). They are just an inseparable part of the root web application. They simply embed into the root application routes and cannot function without it. By pointing a virtual directory to your Areas folder you are indicating that this is a separate ASP.NET application but that's far from being the case.

There are projects like MvcContrib Portable Areas which aim to solve those issues. Worth taking a look. Also if you want to embed some Razor views into an assembly that you could reuse among different ASP.NET MVC 3 applications you may take a look at the following blog post.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文