首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在ASP.NET MVC4项目之间共享HTML

如何在ASP.NET MVC4项目之间共享HTML
EN

Stack Overflow用户
提问于 2015-10-23 11:29:42
回答 3查看 791关注 0票数 16

我有几个网站,我正在建设,显示相同或相似的数据在页面上。为了减少代码重复,我创建了一个第三个项目/网站,我想我会使用它作为共享HTML,java-script,CSS,图片等的位置。

我能够包含JavaScript,CSS,和图片,从共享项目使用相对路径。但是,我无法呈现HTML的部分页面。当尝试使用如下代码访问试图加载部分页面的两个网站时:

@RenderPage("/SharedArtifacts/Views/MySharedViewscshtml")

我得到以下响应:

The virtual path '/SharedArtifacts/Views/MySharedViewscshtml' maps to another application, which is not allowed.

现在我已经在谷歌上搜索并尝试使用~前缀来指定路径的根来解决问题,但无济于事...仍然是同样的错误。

对如何解决这个问题有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-30 23:36:32

我们一直都在这么做。简单的(非编程)方法是在IIS中创建虚拟文件夹,这些文件夹映射到所有配套站点通用的共享文件夹。我们通常对错误结果页面和其他通用内容执行此操作。

/Views/SharedVirtual/somefile.ascx

路径/Views/SharedVirtual通过IIS的虚拟文件夹进行映射。然后在控制器中,我们可以做一个return View("/Views/SharedVirtual/somefile.ascx",somemodel);。它也适用于RenderPartial。

在本地使用项目时,我使用mklink在项目文件夹中创建一个连接点,该连接点映射到共享的通用文件夹。这样,VS会认为文件夹不是本地的,可以在本地运行项目进行调试。

我们通常不使用Razor,但概念应该是一样的,因为它不是在做共享映射,而是操作系统和IIS。

需要注意的是,如果您编辑视图,它们将在所有项目中更改,因此您必须小心编辑,以确保在引用它们的所有项目中使用它们时,它们将是兼容的。

票数 5
EN

Stack Overflow用户

发布于 2015-11-04 08:24:20

ASP.NET MVC将在相同的程序集中查找视图。对于框架来说,将视图或HTML放在不同的程序集中是很不方便的。在内部,我认为框架不支持将View/HTML定位在程序集范围之外。您可能需要编写一些自定义代码或扩展框架,因为它是开源的。

票数 0
EN

Stack Overflow用户

发布于 2015-11-05 23:23:10

当我需要在多个项目之间共享代码时,我通常使用visual studio的“作为链接打开”功能。这使您可以将一个文件用于多个项目。

https://msdn.microsoft.com/en-us/library/windows/apps/jj714082(v=vs.105).aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33294424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档