繁体   English   中英

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

[英]Path To Files Inside Content Folder (ASP.NET MVC)

关于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的视图和控制器显示图像

  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();从Code中 你需要文件的物理路径。 你得到这样的:

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

说到文件路径,请记住您不需要重复的文件名,因此您必须为每个文件指定一个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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM