0

我有一个加载图像文件的控制器:

    //
    // GET: /MyController/Image/id
    public ActionResult Image(string id)
    {
        var dir = @"C:\Temp\Images";
        var path = Path.Combine(dir, id + ".png");
        return File(path, "image/png");
    }

在与操作不同的视图中,MyController/Page/id我匆忙整理了一些 html 来显示图像:

<img src="../image/@Model.Name" />

然后还有一个链接:

<a href="../image/@Model.Name">
  <img src="../image/@Model.Name" />
</a>

它可以工作,但我正在寻找一种更好的方法,使用@Htmlreshaper 可以帮助导航和验证,对于上述两个。我试过这个:

@Html.RenderAction("Image", "MyController", new { id = Model.Name })

但这不会编译,它说Expression must return a value to render

4

2 回答 2

3

我想你只是在寻找Url.Action(),它返回一个动作的 URL:

<img src="@Url.Action("Image", "ImageController", new { id = Model.ImageID })" />
于 2013-11-01T13:59:48.257 回答
3

您可以Url.Action()在 src 属性中使用

 <img src='@Url.Action("Image", "ImageController", new { imageId = Model.Id })' alt='MyImage' />
于 2013-11-01T14:00:18.037 回答