首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server.MapPath(~)替代

Server.MapPath(~)替代
EN

Stack Overflow用户
提问于 2016-10-17 18:25:45
回答 3查看 5.4K关注 0票数 2

我有一个asp.net MVC应用程序,我想获取远程地址来访问某个文件。

在我的img标签中,我使用~/

截至<img src="~/Content/img/logo.svg"/>

在这种情况下,倾斜将被解释。

但是我想通过javascript创建标记,如下所示:

代码语言:javascript
复制
var $state = $(
  '<span><img src="~/Content/img/bancos/' + state.element.value.toLowerCase() + '.png" class="img-banco" /> ' + state.text + '</span>'
);

在这种情况下是不会解释的。

我还能用什么办法呢?

我试过这样做:

代码语言:javascript
复制
var $state = $(
  '<span><img src="@Server.MapPath(~)/Content/img/bancos/' + state.element.value.toLowerCase() + '.png" class="img-banco" /> ' + state.text + '</span>'
);

但这将返回服务器中的应用程序文件夹,如E:\inetpub\...

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-10-19 10:05:30

我发现了@Href,它果然起作用了!

代码语言:javascript
复制
var $state = $(
    '<span><img src="@Href("~/Content/img/bancos/")' + padder.pad(state.element.value) + '.png" class="img-banco" /> &nbsp; ' + state.text + '</span>'
);
票数 0
EN

Stack Overflow用户

发布于 2016-10-17 18:28:01

Server.MapPath返回物理目录的路径。您需要一个相对url到您的应用程序根(或您的图像)

您应该使用帮助器方法在剃刀视图中生成根的值,并将其存储在js变量中并使用它。始终使用javascript名称空间以避免全局变量值覆盖方案。

所以在您的布局文件或视图中

代码语言:javascript
复制
<script>
    var myApp = myApp || {};  
    myApp.Urls = myApp.Urls || {};
    myApp.Urls.baseUrl = '@Url.Content("~")';        
</script>
<script src="~/Scripts/PageSpecificExternalJsFile.js"></script>

在您的外部javascript(PageSpecificExternalJsFile.js)文件中,您可以像这样读取它。

代码语言:javascript
复制
var imageLocation= myApp.Urls.baseUrl+'Content/img/bancos/hi.jpg';
// use this imageLocation now
票数 1
EN

Stack Overflow用户

发布于 2016-10-17 18:34:16

我相信你要找的是:

代码语言:javascript
复制
src="@Url.Content(string.Format("~/Content/img/bancos/{0}.png", state.element.value.toLowerCase()))"

我不知道它是否直接应用于您的代码,但我相信@Url.Content会使您达到目的。

致以敬意,

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40093212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档