[英]MVC3 javascript image issue
我有一个C#.Net MVC3 Web应用程序。 在某个js文件中,我正在加载一个对话框,并在下面的图像中分配loading:属性。
loading: $('<img src="../../Content/Images/loading.gif" alt="loading" class="ui-loading-icon">'),
但是,在不同的环境中找不到图像。 这些实例中的代码应为
loading: $('<img src="../../../Content/Images/loading.gif" alt="loading" class="ui-loading-icon">'),
我试过了
loading: $('<img src="@Href("~/Content/Images/loading.gif")" alt="loading" class="ui-loading-icon">'),
并且还尝试了
loading: $('<img src="@Url.Content("~/Content/Images/loading.gif")" alt="loading" class="ui-loading-icon">'),
都不起作用。...当我在aspx文件中使用@ Url.Content和@Href时,它起作用了。
不用说,我不是javaScript专家,但是我认为这在js文件中必须是可行的。
有任何想法吗?
我通常会解决的方法是在母版或布局页面中创建一个辅助函数:
将此放置在布局页面中,该页面位于对jquery的引用之下,但在将使用它的任何其他文件之上:
// This adds the helper onto the jQuery object rather than just being global
$.getUrl = function (path) {
return '@Url.Content("~")' + path;
};
然后像这样在您的js文件中使用它:
$('<img src="' + $.getUrl('/Content/Images/loading.gif') + '" />')
正如Richard D所说,您不能在javascript文件中运行.NET代码。 可能的解决方法是将图像路径存储在View的隐藏字段中,然后从javascript文件获取它。
查看文件:
<input type="hidden" id="image-path" value="@Url.Content("~/Content/Images/loading.gif")" />
JS档案:
var imagePath = $("#image-path").val();
loading: $('<img src="' + imagePath + '" alt="loading" class="ui-loading-icon">'),
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.