2016-07-11 22 views
0

在我的PartialView中,我可以从我的Content文件夹中拖放,并自动获取图片地址。如何在Javascript中引用MVC内容文件夹

<div style="text-align:center"> 
    <img src="~/Content/information-button16.png"/> 
</div> 

该路径呈现为<img src="/MyProject/Content/information-button16.png"/>

现在我试着去创造一个阻塞信息,要添加一个等待光标,但这似乎没有工作,因为相同的代码生成一个不同的路径。

$('#tabs').block({ 
    message: '<h1><img src="~/Content/busy.gif") /> Just a moment...</h1>' 
}); 

渲染网址是http://Myserver/MyProject/~/Content/busy.gif

yesterday它之后。我可以修复它,

message: '<h1><img src="/MyProject/Content/busy.gif") /> Just a moment... 

但知道是一个坏主意硬编码的情况下,这一变化的项目路径。

那么在javascript中引用MVC路径的正确方法是什么?

回答

1

解决的URL

如果不包含外部JavaScript文件中,你可以使用内MVC的Url.Content()辅助方法来解决相应的绝对网址:

$('#tabs').block({ 
    message: '<h1><img src="@Url.Content("~/Content/busy.gif")" /> Just a moment...</h1>' 
}); 

考虑CSS方法

另一种更适用的方法可能是考虑使用CSS类来设置你的BU sy动画。这将允许您引用您的图像而无需每次都显式调用它的整个路径:

.busy { 
    /* This URL will need to be relative to the location of the element within your CSS */ 
    background: url('~/Content/busy.gif'); 
    height: 16px; 
    width: 16px; 
    display: block; 
} 

,然后只用CSS声明,而不是一个<img>标签:

$('#tabs').block({ 
    message: '<h1><i class='busy'></i> Just a moment...</h1>' 
}); 
+0

第一个问题看起来没问题。让我把所有东西都移到外部的js上,然后再尝试第二个。 –

0

把' /'在字符串的开头。没有〜/或../

document.getElementById('PhotoPerson').innerHTML = 
    '<img src="/Content/Images/UnknownPerson.png" class="img-center img-responsive img-thumbnail">'; 
+1

请描述你的答案为什么可以解决问题? – Ibrahim

+0

OPS我忘记了,只把'/'放在字符串的开头。不〜//../ – CelzioBR

相关问题