如何通过名称选择目录中的图像?

时间:2016-10-31 16:50:53

标签: c# asp.net-mvc

我在MVC应用程序中创建了一个图像上传功能。图像将上载到应用程序中的目录中,并使用ImageResizer插件进行重新调整,重命名和格式化。所有图像都重命名为ID号。

我想知道的是,一旦图像在目录中,有没有办法按名称选择图像?我尝试了几种不同的方法,但我无法工作。

以下是我尝试使用'where'语句的代码,但这种方法不起作用。

public ActionResult Index(int? vesselId)
{
    var filePath = Server.MapPath("~/Content/images/vessels/");
    var fileName = Path.GetFileNameWithoutExtension(filePath);
    var model = new VesselImagesViewModel
    {
          VesselImages = Directory.EnumerateFiles(filePath)
            .Select(fn => Path.GetFileName(fn))
            .Where(fileName.Equals(vesselId));
    };
    return View(model);
}

1 个答案:

答案 0 :(得分:0)

感谢@Quantic输入此内容,方法是将文件名与:

进行比较
Path.GetFileNameWithoutExtension

完整代码如下:

<强>控制器

    public ActionResult Details(int? vesselId)
    {
        //
        // Enumerate through the images directory and
        //return the results to the view.
        var filePath = Server.MapPath("~/Content/images/vessels/");
        var fileName = Path.GetFileNameWithoutExtension(filePath);

        var model = new VesselImagesViewModel
        {
            VesselImages = Directory.EnumerateFiles(filePath)
            .Select(fn => "~/Content/images/vessels/" + Path.GetFileName(fn))
            .Where(id => Path.GetFileNameWithoutExtension(id) == vesselId.ToString())
        };

        return View(model);
    }