2012-08-01 3 views

답변

3

AJAX를 사용해야합니다. 한 가지 쉬운 방법은 PageMethods를 사용하는 것입니다. 첫째, 당신의 방법에 [WebMethod] 속성을 추가 :

[WebMethod] 
protected static string GetListImageFilePath(string fileName) 
{ 

이 방법은 정적이어야합니다.

그런 다음 스크립트 관리자에 EnablePageMethods="True"을 설정하십시오. 그런 다음 JavaScript에서 C# 코드를 다음과 같이 호출 할 수 있습니다.

var fileName = args.get_fileName(); 
PageMethods.GetListImageFilePath(fileName, function (path) { 
    lstImg.src = path; 
}); 
1

수 없습니다. JavaScript는 클라이언트에서 실행되며 asp.net 코드는 서버에 있습니다. 서버와 통신하는 다른 방법 (예 : Ajax에서 웹 서비스, 포스트 백 등)을 사용해야합니다.

0

JavaScript는 클라이언트 측, 즉 브라우저에서 서버 코드로 실행되기 때문에 단순히 수행 할 수 없습니다. 섬기는 사람. 당신이 할 수있는 일은 GetListImageFilePath 함수를 변경하여 이미지 디렉토리의 기본 URL을 반환 한 다음 파일 이름을 추가하여 이미지 경로를 만듭니다.

var fileName = args.get_fileName(); 
lstImg.src = <%=GetListImageFilePath() %> + '/' + fileName; 

는 자바 스크립트에서 서버 태그 처리 방법 등의 자세한 내용은, 내가 StackOverFlow thread 여기에 대답했다. 의심의 여지가 있는지 살펴보십시오.

0

get_fileName()은 서버 측 기능이라고 생각합니다. 따라서 HTML에서 직접 호출 할 수 있습니다. 이러한 링크를 확인

http://weblogs.asp.net/jalpeshpvadgama/archive/2012/01/07/asp-net-page-methods-with-parameters.aspx http://stackoverflow.com/questions/7633557/asp-net-is-it-possible-to-call-methods-within-server-tag-using-eval

RegisterStartupScript() 또는 RegisterClientScriptBlock()을 사용하여 javascript 함수를 호출하는 경우 이는 서버 측이 아니라 클라이언트 측에서 호출됩니다.

자바 스크립트 기능을 서버 측에서 즉시 호출하려면 동등한 서버 측 기능을 선언하십시오.

0

웹 사이트에 ashx (http 처리기)를 추가하면 lstImg.src = '/example.ashx?name='+ fileName을 사용할 수 있습니다.

public class ExampleHandler: IHttpHandler { 

    public void ProcessRequest (HttpContext context) { 
    var request = context.Request; 
     string fileName = (string)request.QueryString["name"]; 
     // your logic 
     context.Response.Write(yourpath) 
    } 

    public bool IsReusable { 
    get { 
     return false; 
    } 
    } 
} 
관련 문제