2016-10-17 1 views
2

asp.net MVC 응용 프로그램이 있는데 특정 파일에 액세스하기 위해 원격 주소를 가져 오려고합니다. 내 IMG 태그에서Server.MapPath (~) 대체

, 나는이 경우 <img src="~/Content/img/logo.svg"/>

현재

~/을 사용하고, 물결표는 해석됩니다.

는하지만이 같은 자바 스크립트를 통해 태그를 만들려면 : 물결이 경우 해석되지 않습니다

var $state = $(
    '<span><img src="~/Content/img/bancos/' + state.element.value.toLowerCase() + '.png" class="img-banco" /> ' + state.text + '</span>' 
); 

.

어떤 대안을 사용할 수 있습니까?

var $state = $(
    '<span><img src="@Server.MapPath(~)/Content/img/bancos/' + state.element.value.toLowerCase() + '.png" class="img-banco" /> ' + state.text + '</span>' 
); 

을하지만이 E:\inetpub\...

답변

-1

감사합니다!

var $state = $(
    '<span><img src="@Href("~/Content/img/bancos/")' + padder.pad(state.element.value) + '.png" class="img-banco" /> &nbsp; ' + state.text + '</span>' 
); 
1

Server.MapPath가 실제 디렉터리의 경로를 반환과 같은 서버에서 응용 프로그램 폴더를 반환합니다

나는이 시도했다. 앱 루트 (또는 이미지)에 대한 상대 URL이 필요합니다.

도우미 메서드를 사용하여 면도기 뷰에서 루트 값을 생성하고이를 js 변수에 저장하고이를 사용해야합니다. 항상 자바 스크립트 네임 스페이스 지정사용 시나리오 그래서 레이아웃 파일 또는 뷰

<script> 
    var myApp = myApp || {}; 
    myApp.Urls = myApp.Urls || {}; 
    myApp.Urls.baseUrl = '@Url.Content("~")';   
</script> 
<script src="~/Scripts/PageSpecificExternalJsFile.js"></script> 

에서

그리고 외부 자바 스크립트 (PageSpecificExternalJsFile.js) 파일을 덮어 전역 변수 값을 방지하기 위해, 당신은 좋아하는 읽을 수 있습니다.

var imageLocation= myApp.Urls.baseUrl+'Content/img/bancos/hi.jpg'; 
// use this imageLocation now 
+0

디버깅시, 다음과 같은 메시지가 나타납니다 :'myApp.Urls.baseUrl = "/" – Phiter

+0

예. 이것이 앱 루트 (상대 경로)입니다. js 코드가 현재 페이지에서 작동해야합니다. 베이스 URL로 사용하고 나머지 부분을 추가하십시오. – Shyju

+1

'Content' 전에 슬래시를 제거하고 작동했습니다. – Phiter

0

나는 당신을 위해 무엇을 찾고있는 것은 있다고 생각 : 나는 코드에 직접 적용되는지 알고하지는

src="@Url.Content(string.Format("~/Content/img/bancos/{0}.png", state.element.value.toLowerCase()))" 

하지만 난 거기에 당신을 얻을 것이다 @ Url.Content 있다고 생각합니다. 나는 약 @Href을 발견하고 예상대로 일