首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从ViewData显示图像

从ViewData显示图像
EN

Stack Overflow用户
提问于 2014-08-19 09:48:45
回答 3查看 2.8K关注 0票数 1

您能帮助我解决从ViewData加载图像的问题吗?在我的模型中,我按公司名称从服务器加载了一个映像:

代码语言:javascript
复制
System.Drawing.Image image = System.Drawing.Image.FromFile(HttpContext.Server.MapPath("~/Logos/"+  companyName  +".png"))

我将此图像加载到视图中:

代码语言:javascript
复制
ViewData["Image"] = image;

我将其返回到视图,并在那里再次加载该图像:

代码语言:javascript
复制
<img src=@ViewData["Image"] alt="" />

图像不显示。你能帮我解决那个问题吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-19 09:52:22

因此,您在代码中使用的是MapPath,我相信图像文件是在项目源代码本身,而不是二进制格式。您应该在视图文件中使用这样的图像路径,将下面的路径替换为项目中文件的路径:

代码语言:javascript
复制
<img src="@Url.Content("~/Content/App/Images/filename.gif")" alt="Loading..." />

或者像这样:

控制器中的

代码语言:javascript
复制
public ActionResult Action1(){
 ViewData.CompanyName = "C1"; // this value can be populated from anywhere.
 return View();
}

视图中的

代码语言:javascript
复制
<img src="@Url.Content(String.Format("~/Logos/{0}.png", ViewData.CompanyName))" alt="Loading..." />

其中,ViewData.CompanyName是一个字符串,该字符串被填充,然后提供给视图。您还可以使用强类型类为视图创建模型,而不是使用ViewData。

当此视图将在浏览器中呈现时,它将具有此图像,前提是该文件位于该位置,并且您有权查看该资源。

票数 1
EN

Stack Overflow用户

发布于 2014-08-19 09:56:59

src属性指定图像的URL,而不是图像本身。这是一个字符串值。你应该做这样的事

代码语言:javascript
复制
string imageURL = "~/Logos/"+  companyName  +".png"; (or use string.concat)
ViewData["Image"] = imageURL ;

<img src=@ViewData["Image"] alt="" />
票数 0
EN

Stack Overflow用户

发布于 2014-08-19 10:04:33

您不需要将路径转换为System.Drawing.Image。试试这个:

代码语言:javascript
复制
var imageURL = Url.Content("~/Logos/"+  companyName  +".png");
ViewData["ImageURL"] = imageURL;

那么在你看来:

代码语言:javascript
复制
<img src="@(ViewData["ImageURL"])" alt="" />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25380362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档