C# 内容文件夹内文件的路径(ASP.NET MVC)
关于内容文件夹在ASP.NET MVC中的工作方式,我仍然不了解一些东西。为了让事情更清楚,我有几个问题:C# 内容文件夹内文件的路径(ASP.NET MVC),c#,asp.net,asp.net-mvc,asp.net-mvc-3,localhost,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Localhost,关于内容文件夹在ASP.NET MVC中的工作方式,我仍然不了解一些东西。为了让事情更清楚,我有几个问题: 内容文件夹是根文件夹吗?我的意思是指内容还是其他什么 我在Content/images/temp文件夹中有一个名为dummycon.png的文件。如何从我的域层(代码库项目)找到它 在ASP.NET MVC中显示图像的最佳实践是什么?我应该在数据库中存储图像的路径(我个人更喜欢),还是保存字节数组并将其返回到视图 我发现以下链接在MVCWeb应用程序的上下文中很有帮助,但我仍然希望能回答上
您应该为控制器创建一个模型对象以返回。在本例中,我返回SearchPageModel,这是我创建的一个类。但是假设这个对象有一个名为imageURL的属性 但要确保控制器实际返回一个ActionResult 比如说
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Search()
{
SearchPageModel Model = new SearchPageModel();
// populate the Model properties
Model.ImageURL = "myjpeg"
return View("Search", Model);
}
然后,我将此模型对象传递回所需的视图(在本例中为“搜索”视图)
为了显示图像,我将在视图中添加
<img src="Images/<%=Model.ImageURL %>.jpg" />
.jpg/>
1.内容文件夹是否为根文件夹?
我的意思是指
内容还是别的什么
不,不指向内容文件夹。您可以通过以下方式访问内容文件夹中的文件
2.我有一个名为dummycon.png的文件
在内容/图像/临时文件夹内。如何
我是否从我的域层找到它
(哪个是代码库项目)
您应该能够以以下方式访问它:
3.最佳实践是什么
在ASP.NET MVC中显示图像?
我应该在中存储图像的路径吗
数据库(我个人
首选),还是保存字节数组和
是否将其返回到视图
图像的存储位置取决于您的应用程序需要。这些是用于显示应用程序图像(图标、公司徽标等)的通用图像…那么最好将它们存储在文件系统中
如果您的应用程序处理图像,并且您要存储图像、操作等,那么您可能需要DB。我认为,存储web应用程序上使用的图像是一种开销
http://localhost/dummy.ico“
将给您一个404,找不到控制器直到您在global.asax.cs
中执行此操作:
routes.IgnoreRoute("dummy.ico");
//you could add wildcards here to match different things
File.Open(),则从代码开始代码>您需要文件的物理路径。你可以这样理解:
string filePath = Server.MapPath(Url.Content("~/Content/Images/Image.jpg"));
嗯是的,这就是我正在做的。但这不是我真正的问题。我要求的是如何将路径映射到代码中的图像,然后将其存储在数据库中。或者,如果某个图标永远不会更改,我可以将其存储在Content/images/icons文件夹中,并从视图中检索它。我将始终存储在文件系统中,并使用DB保存路径,因为我缺少的是端口号!谢谢你指出这一点!:)我还忘了用AutoMapper映射路径。现在我把一切都搞定了!但是关于在数据库中存储图像,这不会使数据库的大小急剧增加吗?是的。这是一个你必须考虑的权衡。关于在DB中存储IMG有很多文章/争论。。您应该在google上搜索一些+1,以获取有关使用GUID的提示。我忘了。是的,将会有很多图片被上传到网站上。该网站是一个拍卖网站,用户最多可以上传3张他们所发布物品的图片。我不明白你的最后一句话,你是说把图像放在数据库里还是目录里?@Kassem就像我说的,这取决于你的,大量的文件,我想说的是把文件都存储在一个文件夹里,用guid作为名称,而在你的数据库里你不存储路径。您只存储GUID,因此迁移和移动将更容易。(如果你的图像很小/或者数量很小,那么把它们塞进数据库是有意义的,这就是我的意思。)