Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 内容文件夹内文件的路径(ASP.NET MVC)_C#_Asp.net_Asp.net Mvc_Asp.net Mvc 3_Localhost - Fatal编程技术网

C# 内容文件夹内文件的路径(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应用程序的上下文中很有帮助,但我仍然希望能回答上

关于内容文件夹在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
    
  • 如果您使用saysFile.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,因此迁移和移动将更容易。(如果你的图像很小/或者数量很小,那么把它们塞进数据库是有意义的,这就是我的意思。)