我想这是非常直接的事情,但我无法知道如何做到这一点。在我的控制器中,我有:
public ViewResult ShowForm()
{
ViewBag.Title = Resources.ApplicationTitle;
ViewBag.LabelStatus = Resources.Status;
//Logo
ViewBag.Logo =@"C:\Images\Logo.png";
return View("ShowForm");
}
在我看来,我试试这个:
<div id="drawForm">
<img src="@ViewBag.Logo" alt="Logo" />
</div>
然而,当我运行这个时,我只得到“徽标”文字。
答案 0 :(得分:5)
使用Server.MapPath
获取图像的正确路径。假设您的images文件夹位于通常包含在MVC项目中的Content
文件夹中。你可以这样做:
public ViewResult ShowForm()
{
//Logo
ViewBag.Logo = Server.MapPath("~") + @"Content\Images\Logo.png";
return View("ShowForm");
}
您无需更改视图中的代码。
答案 1 :(得分:4)
试试这个:
ViewBag.Logo = Url.Content("~/Content/Images/Logo.png");
答案 2 :(得分:3)
你需要一个ImageController来渲染它。
见:
ASP.NET MVC3: Image loading through controller
并且: Can an ASP.NET MVC controller return an Image?
一旦有了控制器,就可以按如下方式进行渲染:
public class ImageController{
public ActionResult ShowImage(string path)
{
return File(path);
}
}
在您的观点中:
<img src="@Url.Action("Render","Image", new {id =1 // or path })" />
答案 3 :(得分:1)
public ActionResult ShowForm()
{
ViewBag.Title = Resources.ApplicationTitle;
ViewBag.LabelStatus = Resources.Status;
//Logo
byte[] imgbytes = File.ReadAllBytes(@"C:\Images\Logo.png");
return File(imgbytes , "image/png");
}
<div id="drawForm">
<img src="controllerName/ShowForm" alt="Logo" />
</div>