![](/img/trans.png)
[英]How can I reference a class in MVC project that retrieves data from database with asp.net core
[英]How can I reference a Master view in a different project in ASP.NET MVC?
我正在创建一个ASP.NET MVC解决方案,在我内部有2个MVC网站项目。
我有兴趣创建一个名为“Shared”的第三个项目,我可以在其中引用两个站点之间的共享视图/内容,因此我只有一个位置可以编辑它们。
如果Masterview的位置在另一个项目中,我该如何引用Masterview的位置?
所以,通常在视图的顶部我会像这样引用一个Masterview:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Tabbed.Master" Inherits="System.Web.Mvc.ViewPage<WebUI.ViewModels.Admin.EditProfileViewModel>" %>
然而,
现在,“Tabbed.Master”不在本地项目中,它位于解决方案中的差异项目中。 我已经创建了对项目的引用,但我不知道如何从WebUI.Site1引用Tabbed.Master到WebUI.Shared?
就像是:
<%@ Page Title="" Language="C#" MasterPageFile="WebUI.Shared.Views.Tabbed.Master" Inherits="System.Web.Mvc.ViewPage<WebUI.ViewModels.Admin.EditProfileViewModel>" %>
不行。
如何在像这样的项目中引用masterview,css文件,图像等位置?
由于MasterView的性质,您需要找到基于文件的解决方案。 虚拟路径是一种方法,但我认为你会遇到麻烦:当你使用内部Visual Studio Web服务器时,如何处理文件引用?
并想一想IIS中缺少此虚拟路径时所遭受的痛苦。
Visual Studio允许您链接到其他项目的文件。 这些文件将在编译时复制:
在解决方案资源管理器中右键单击 - >添加现有项目... - >选择文件 - >添加为链接
就个人而言,我不关心这个功能。 但它似乎做你需要的。
假设WebUI.Shared Root/Views/SharedPage.Master
位于WebUI.Shared Root/Views/SharedPage.Master
尝试在指向WebUI.Shared
WebUI.Site1
和WebUI.Site2
下创建虚拟目录:
WebUI.Site1/Shared => WebUI.Shared Root
WebUI.Site2/Shared => WebUI.Shared Root
从WebUI.Site1
和WebUI.Site2
使用以下路径访问WebUI.Site2
: ~/Shared/Views/SharedPage.Master
我不认为IDE将能够跟踪引用,但它应该在服务器上工作。
编辑: WebUI.Site1和WebUI.Site2可能需要WebUI.Shared上的引用。
如果要使用与项目的View文件夹不同的位置来存储视图,则需要创建自定义ViewEngine
。
看看Phil Haack的这个原型 。 它是关于将视图存储在数据库中,但它应该让您了解从哪里开始。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.