我有一个加载图像文件的控制器:
//
// 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>
它有效,但我正在寻找一种使用@Html
的更好方法,因此resharper可以帮助导航和验证,对于上面的两个。我试过这个:
@Html.RenderAction("Image", "MyController", new { id = Model.Name })
但这不会编译,它说Expression must return a value to render
。
答案 0 :(得分:3)
我认为你只是在寻找Url.Action()
,它会返回一个动作的URL:
<img src="@Url.Action("Image", "ImageController", new { id = Model.ImageID })" />
答案 1 :(得分:3)
您可以在src属性中使用Url.Action()
<img src='@Url.Action("Image", "ImageController", new { imageId = Model.Id })' alt='MyImage' />