ASP.net MVC目录浏览

时间:2010-09-19 21:56:16

标签: asp.net-mvc asp.net-development-serv directory-browsing

我添加了将图像上传到我的ASP.net mvc应用程序的功能。基本上用户选择一个图像,我将其上传到我在我的解决方案文件夹结构中创建的Images文件夹。这很好用,图像上传到ima​​ges文件夹。

我遇到的问题现在是将图像显示回浏览器。我的问题是如何更改Asp.net开发服务器的目录浏览属性(localHost:blah blah),以便图像目录即http://localHost:9823/Images/UploadedImageName.jpg显示在浏览器中?

提前致谢

1 个答案:

答案 0 :(得分:2)

我用过的几个选项。每种风格的利弊!

在视图中

您可以将视图配置为使用此样式:

 <img src="<%=ResolveUrl("~/Images/foo.png")" %> />

这可以通过几种方式进行重构。也许是扩展方法,或代码隐藏在您的视图中。

控制器方法+路线

创建一个新的Controller来提供图像。确保您有一条默认路线。

 public class Images
 {
   public FileResult GetImage(string fileName) //foo.png
    {
        string fullPath = "~/Images/" +  fileName;
        return base.File(fullPath, "image/jpeg");
    }
 }

...
routes.MapRoute("UserImage",
                "Image/{filename}",
                new { controller = "Images", action = "GetImage", 
                      fileName=filename });