7

我想这是非常直接的事情,但我不知道该怎么做。在我的控制器中,我有:

 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>

但是,当我运行它时,我只会得到“徽标”文本。

4

4 回答 4

5

用于Server.MapPath获取图像的正确路径。假设您的 images 文件Content夹位于通常包含在 MVC 项目中的文件夹内。你可以这样做:

public ViewResult ShowForm()
{
    //Logo
    ViewBag.Logo = Server.MapPath("~") + @"Content\Images\Logo.png";
    return View("ShowForm");
}

而且您不必更改视图中的代码。

于 2013-04-22T08:33:18.237 回答
5

尝试这个:

ViewBag.Logo = Url.Content("~/Content/Images/Logo.png");
于 2013-04-22T08:46:40.553 回答
4

你需要一个 ImageController 来渲染它。

看到这个:

ASP.NET MVC3:通过控制器加载图像

还有这个: ASP.NET MVC 控制器可以返回图像吗?

一旦你有一个控制器,你可以渲染如下:

public class ImageController{

public ActionResult ShowImage(string path) 
{

    return File(path);
}

}

在您看来:

<img src="@Url.Action("Render","Image", new {id =1  // or path })" />
于 2013-04-22T08:28:54.937 回答
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>
于 2013-04-22T08:48:26.673 回答