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

时间:2011-03-24 10:02:32

标签: c# asp.net asp.net-mvc asp.net-mvc-3 localhost

我仍然不了解Content文件夹在ASP.NET MVC中的工作原理。为了让事情更清楚,我有几个问题:

  1. Content文件夹是根文件夹吗?我的意思是http://localhost/指向内容还是其他内容?
  2. 我在Content / images / temp文件夹中有一个名为dummyIcon.png的文件。如何从我的域层(代码库项目)中找到它?
  3. 在ASP.NET MVC中显示图像的最佳做法是什么?我应该在数据库中存储图像的路径(我个人更喜欢),还是保存一个字节数组并将其返回到视图?
  4. 我发现以下链接在MVC Web应用程序的上下文中有所帮助,但我仍然感谢上面发布的问题的一些答案。谢谢。

    Can an ASP.NET MVC controller return an Image?

    how to display image using view and controller by ASP.NET MVC

3 个答案:

答案 0 :(得分:38)

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

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

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

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

  4. 说到文件路径,请记住您不需要重复的文件名,因此您必须为每个文件指定GUID,然后将其链接起来。如果您拥有大量文件(或大型文件本身),那么您的数据库将不会像疯了一样增长。

    HTH

答案 1 :(得分:11)

  

1. Content文件夹是根文件夹吗?   我的意思是http://localhost/指向   内容还是别的什么?

不,http://localhost:port/未指向内容文件夹。您可以通过http://localhost:port/content/ ...

访问内容文件夹中的文件
  

2.我有一个名为dummyIcon.png的文件   在Content / images / temp文件夹中。怎么样   从我的域图层中找到它   (这是一个代码库项目)?

您应该能够以http://localhost:port/Content/images/temp/dummyIcon.png

的形式访问它
  

3.什么是最好的做法   在ASP.NET MVC中显示图像?   我应该存储图像的路径   数据库(我个人而言)   更喜欢),或者我保存一个字节数组和   将它返回到视图?

存储图像的位置取决于您的应用需求。这些通用图像是用于显示应用程序图像(图标,公司徽标等)的。然后最好将它们存储在文件系统中。

如果您的应用程序处理图像并且您正在处理存储图像,操作等,那么您可能需要DB。我认为,存储Web应用程序中使用的图像是一种开销。

答案 2 :(得分:0)

您应该为控制器创建一个模型对象以返回。在这个例子中,我将返回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" />
相关问题