如何在视图 MVC 中更改 img src

Posted

技术标签:

【中文标题】如何在视图 MVC 中更改 img src【英文标题】:How to change img src in view MVC 【发布时间】:2017-04-09 03:59:46 【问题描述】:

这是我的图片:

<img id="1star" src="~/Content/Images/emptystar.png" onmouseover="setStars(1)" onmouseout="setStarsBack()" onclick="location.href='@Url.Action("SetRating", "CreativeModels", new  id = GlobalVariables.CurrentBookId, rating = 1 )'" />

这是应该改变图像源的函数代码:

function setStars(amount) 
   if (amount > 0) 
     document.getElementById("1star").src = "~/Content/Images/filledstar.png";
   

它发生了变化,但浏览器说它无法加载图像。这是将鼠标移动到图片后浏览器显示的内容:

这是图像在将鼠标移动到它们之前的样子:

我应该如何更改src 属性?

【问题讨论】:

【参考方案1】:

问题不在于 src 属性。这已正确更改为您设置的内容。问题是它指向错误的目录。

假设您在 MVC 解决方案中使用 razor,请尝试以下操作:

function setStars(amount) 
   if (amount > 0) 
     document.getElementById("1star").src = "@Url.Content("~/Content/Images/filledstar.png")";
   

【讨论】:

【参考方案2】:

您可以尝试将您的图像URL 基于当前 html 文件位置。实际上,在您的图像URL 中使用~,您假设它位于当前用户主文件夹下。但如果用户改变,~ 将指向新的用户主文件夹。

我建议你把src标签的当前值改成这样:

<pathOfHtmlFile>/Content/Images/filledstar.png

并将&lt;pathOfHtmlFile&gt;替换为您计算机上html文件所在的路径。

【讨论】:

我将其更改为"E:/Kursovoi/Super Backup/Eksperement c vistavleniem otsenok/WebApplication4/WebApplication4/Views/CreativeModels/Content/Images/emptystar.png",但没有任何改变。我猜浏览器只能访问服务器上的图片,而我没有。而且我没有html文件,我有cshtml文件。 @VladimirMootin 这不是服务器问题,我尝试在我的电脑上重现该问题,但得到了预期的结果。您能否将浏览器控制台的输出添加到您的问题中?这可以帮助解决问题。

以上是关于如何在视图 MVC 中更改 img src的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 webpack 和 vue-loader 更改 .vue 文件中 <img> 的 src 属性?

MVC 3 视图:如何使用包含字符串和模型数据的 src 创建 <image>

ie8下jquery更改IMG src路径,图片无法显示,如何解决! 如:$('img[ectype="avatar"]').attr('src',

如何使用 jQuery 或 JS 更改 img src onclick

更改 img src SVG 颜色 [重复]

如何在 Sencha Architect 中动态设置 Ext.Img ->"src" 的值