我有一个包含几个MVC asp.net项目的C#解决方案。在Project1下有一个用于存储图像的目录,用户可以从前端编辑,删除和添加图像。我需要从Project2访问这些图像。但是,我不想硬编码文件路径。我怎么能这样做?
答案 0 :(得分:1)
您可以将文件作为链接(快捷方式)添加到第二个项目中。
编辑:听起来我误解了原来的问题。如果您希望在多个网站上访问动态创建/删除的图像,那么您应该查看服务器上的creating a shared folder并在其中存放使用已修改的文件。
如果您没有可以登录的专用服务器,则可以在站点之间共享文件,如果您可以在IIS中的公共站点下将其设置为虚拟目录。他们都应该能够访问位于站点根目录内的文件夹。
答案 1 :(得分:0)
这不是您问题的直接答案,但如果您的图片是Project2中的资源,我相信这会有所帮助:http://www.codeproject.com/Articles/2125/Using-Resource-only-Assemblies-with-C
基本上,您需要在Project1中为Project2创建ResourceManager,然后使用它来获取资源。它应该非常简单。
答案 2 :(得分:0)
我已经回答了类似的问题.Net MVC: How do you share scripts among multiple projects in one solution?我的答案适用于任何类型的文件(.html,.js,.png,.jpg,。cs,.css)
更新1
为了在运行时执行此操作,我将创建一个数据库(MSSQL)并将文件存储在该数据库的FileStream中(这不会将它们存储在MDF数据库中,Filestream vs Normal Files)。这使得文件可用于您创建的任何项目,您可以添加其他元数据(如用户)以进行其他授权,记录和查询。
选项#1。检索文件(图像)可以由任何应用程序完成,然后由该应用程序提供服务。优点是任何类型的带宽使用都可以轻松直接地绑定到为文件提供服务的应用程序。缺点是,如果您的用户使用多个站点,浏览器跨网站将不会缓存该文件。
选项#2。检索文件(图像)可以通过单独的文件共享项目完成。每当另一个项目需要一个文件时,它就可以查询数据库,并为文件共享项目URL创建适当的URL,并在客户端检索图像。