0

我使用一个函数来动态构建图像路径,如下所示:

  function () {
            var name = $(this).attr('id') + '_o';
            var newsrc = '../../Content/HomePage/' + name + '.png';

我想将使用 Razor Url.Content的 newsrc 分配给图像标签作为其来源。所以,我想做这样的事情:

  $(this).attr('src', '@Url.Content(newsrc)');

但是 VS 向我显示红线,表示当前上下文中不存在 newsrc。如何将变量与 Url.Content 一起使用?

(注意:我正在使用这个内部脚本标签......)

编辑:我想到了一个想法,也许后门会将 newsrc 传递给控制器​​,在那里使用 Url.Content 来解析 url 并将其传回?可行吗?

任何帮助将不胜感激..

4

3 回答 3

1

当我使用这种技术将路径发送到 JavaScript 变量时,它会显示 -1 而不是路径。代码如下。

var path= <%= ConfigurationManager.AppSettings["FileManager"] %>;
于 2012-12-10T10:28:38.787 回答
0

您正试图将 javascript 变量直接传递给 Asp.Net 代码——这是不可能的。

您将不得不删除@Url.Content()并仅使用 javascript 中的相对路径:

$(this).attr('src', newsrc);

或者,使用Url.Content()获取文件夹位置,并在 javascript 中附加文件名,如下所示:

var name = $(this).attr('id') + '_o';
var newsrcFolder = '@Url.Content('../../Content/HomePage/')';
var newsrc = newsrcFolder + name + '.png';
$(this).attr('src', newsrc);
于 2011-12-07T09:27:48.757 回答
0

问题由我的前辈解决。我在 web.config(一个 WebDirectory)中创建了一个额外的 appsettings,然后将该值分配为文件夹路径。

然后,在我的代码中,我可以使用以下方法轻松构建我的 url:

 System.Configuration.ConfigurationManager.AppSettings["WebDirectory"].ToString()...

在这里分享我的解决方案,希望它对将来的人有所帮助。谢谢。

于 2011-12-10T23:33:45.207 回答