c#
  • html
  • class
  • methods
  • 2017-10-24 1 views 0 likes 
    0

    ASPX 응용 프로그램의 12 개의 개별 페이지에있는 C#으로 작성된 함수가 있습니다. 나는 이미 App_Code에서 cs 파일을 사용하므로 문제는 아닙니다. 여기 자주 사용하는 함수를 클래스로 이동하고 HTML 코드에서 호출

    는 HTML의 호출입니다 :

    <asp:Image ID="Image1" runat ="server" ImageUrl='<%# (string) FormatImageUrl((string) Eval("Image")) %>' /> 
    

    을 여기하는 방법입니다 : (. 큰 발견은 내가 추가 할 수 있습니다)

    protected string FormatImageUrl(string url) 
    { 
    if (url != null && url.Length > 0) 
        return ("~/" + url); 
    else return null; 
    } 
    

    나는이 방법을 이동하려면 App_Code 및 많은 페이지에서 하나의 인스턴스를 참조하십시오.

    HTML 코드에서 namespace.function.method를 추가하려고했지만 오류가 발생합니다.

    또한이 메서드에 대해 DLL을 사용하여 보았지만 여전히 HTML 코드에서 을 올바르게 참조 할 수 없습니다.

    답변

    1

    지난 몇 일 동안 싱크 탱크 모드에서 약간의 시간을 보내고 마침내 해결책을 찾았습니다.

    는 난을 App_Code 클래스라는 이름의 파일 ImageFormatter.cs을 생성하며 다음과 같습니다

    /// <summary> 
    /// Summary description for ImageFormatter 
    /// </summary> 
    public class ImageFormatter 
    { 
        public ImageFormatter() 
        { 
         // 
         // TODO: Add constructor logic here 
         // 
        } 
    
        public static string FormatImageUrl(string url) 
        { 
        if (url != null && url.Length > 0) 
        return ("~/" + url); 
        else return null; 
    } 
    } 
    

    참고 : 나는 이름 공간 definitioin 및 관련 {와}를 제거했습니다.

    내 이론을 테스트하기 위해 앱의 두 페이지에서 FormatImageUrl 함수를 주석 처리했습니다.

    동일한 두 파일에서 HTML 코드를 수정했습니다. 클래스에 함수를 이동할 필요 당신의 사람들을 위해 그래서

    <asp:Image ID="Image1" runat ="server" ImageUrl='<%# (string) ImageFormatter.FormatImageUrl((string) Eval("Image")) %>' /> 
    

    : (I가 입증 된 바와 같이)

    • 가 적절한 이름
      • 장소 클래스 내에서 함수의 클래스를 생성
      • 이름 공간 확인 및 제거
    • t o 코드 페이지의 함수를 주석으로 처리하십시오.
    • 클래스 이름을 포함하도록 HTML 코드를 수정하십시오.
    관련 문제