[英]Path To Files Inside Content Folder (ASP.NET MVC)
关于Content文件夹如何在ASP.NET MVC中工作,我仍然无法理解。 为了使事情更清楚,我有几个问题:
我发现以下链接在MVC Web应用程序的上下文中有用,但我仍然感谢上面发布的问题的一些答案。 谢谢。
如果您的路由忽略了根目录中的任何内容将指向根目录:
如果您在项目的根目录上放置了图像 。 然后,说http:://localhost/dummy.ico"
会给你一个404,没有找到控制器。 直到你在global.asax.cs
这样做:
routes.IgnoreRoute("dummy.ico"); //you could add wildcards here to match different things
如果您使用File.Open();
从Code中 你需要文件的物理路径。 你得到这样的:
string filePath = Server.MapPath(Url.Content("~/Content/Images/Image.jpg"));
虽然我会说,如果你想把所有东西放在一个地方,把文件放到数据库中会很有意义。 如果您需要移动您的应用程序,您只需移动数据库。
说到文件路径,请记住您不需要重复的文件名,因此您必须为每个文件指定一个GUID
然后将其链接起来。 如果您拥有大量文件(或大文件本身),这可能是有意义的,因此您的数据库不会像疯了一样增长。
HTH
1. Content文件夹是根文件夹吗? 我的意思是http:// localhost /指向内容还是其他的东西?
不, http:// localhost:port /不指向内容文件夹。 您可以通过http:// localhost:port / content /来访问内容文件夹中的文件。
2.我在Content / images / temp文件夹中有一个名为dummyIcon.png的文件。 如何从我的域层(代码库项目)中找到它?
您应该能够以http:// localhost:port / Content / images / temp / dummyIcon.png访问它
3.在ASP.NET MVC中显示图像的最佳实践是什么? 我应该在数据库中存储图像的路径(我个人更喜欢),还是保存字节数组并将其返回到视图?
存储图像的位置取决于您的应用程序需求。 这些通用图像是用于显示应用程序图像(图标,公司徽标等)的。然后最好将它们存储在文件系统中。
如果您的应用程序处理图像并且您正在处理存储图像,操作等,那么您可能需要DB。 我认为,存储Web应用程序中使用的图像是一种开销。
您应该为控制器创建一个模型对象以返回。 在这个例子中,我将返回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" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.