使用一个变量在Razor Url.Content中存储图像路径



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

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

和我想分配newsrc使用Razor Url。内容到图像标记作为其源。所以,我希望这样做:

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

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

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

编辑:我想到了一个想法,也许后门将传递newsrc到控制器,使用Url。内容来解析url并传递回去?这可行吗?

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

var path= <%= ConfigurationManager.AppSettings["FileManager"] %>;

您正在尝试直接将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);

我的前辈解决了这个问题。我在网上创建了一个额外的应用程序。配置(一个WebDirectory),然后分配值作为文件夹路径。

然后,在我的代码中,我可以很容易地构造我的url:
 System.Configuration.ConfigurationManager.AppSettings["WebDirectory"].ToString()...
在这里分享一下我的解决方案,希望能对将来的人有所帮助。谢谢。

相关内容

  • 没有找到相关文章

最新更新