内容文件夹内的文件路径(ASP.NET MVC)

Kas*_*sem 22 c# asp.net asp.net-mvc localhost asp.net-mvc-3

关于Content文件夹如何在ASP.NET MVC中工作,我仍然无法理解.为了使事情更清楚,我有几个问题:

  1. Content文件夹是根文件夹吗?我的意思是http:// localhost /指向内容还是其他的东西?
  2. 我在Content/images/temp文件夹中有一个名为dummyIcon.png的文件.如何从我的域层(代码库项目)中找到它?
  3. 在ASP.NET MVC中显示图像的最佳实践是什么?我应该在数据库中存储图像的路径(我个人更喜欢),还是保存一个字节数组并将其返回到视图?

我发现以下链接在MVC Web应用程序的上下文中有用,但我仍然感谢上面发布的问题的一些答案.谢谢.

ASP.NET MVC控制器可以返回一个Image吗?

如何使用ASP.NET MVC的视图和控制器显示图像

gid*_*eon 39

  1. 如果您的路由忽略了根目录中的任何内容将指向根目录:

    如果您在项目的根目录上放置了图像.然后,说http:://localhost/dummy.ico"会给你一个404,没有找到控制器.直到你在你的global.asax.cs:

    routes.IgnoreRoute("dummy.ico");
    //you could add wildcards here to match different things
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果使用,则从"代码"中说File.Open();您需要文件的物理路径.你得到这样的:

    string filePath = Server.MapPath(Url.Content("~/Content/Images/Image.jpg"));
    
    Run Code Online (Sandbox Code Playgroud)
  3. 虽然我会说,如果你想把所有东西放在一个地方,把文件放到数据库中会很有意义.如果您需要移动您的应用程序,您只需移动数据库.

说到文件路径,请记住您不需要重复的文件名,因此您必须为每个文件指定一个GUID,然后将其链接起来.如果你有大量的文件(或大文件本身),这是有道理的,所以你的数据库不会像疯了一样成长.

HTH


Abd*_*oof 11

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应用程序中使用的图像是一种开销.