2012-01-25 3 views

답변

0

가장 좋은 대답은보기 자체에서 어떤 콘텐츠도 직접 시도하거나 요청하지 않는 것입니다.

이러한 요청을 처리하고 이러한 도우미의 파일에 대한 실제 경로 만 지정하려면 HTML 도우미를 만드십시오. 그런 일이 필연적으로 주위를 움직이면 도우미에서 경로를 한 번 변경하면 모든보기가 작동합니다. 이것은 내 이미지 도우미의 예입니다. Rob Conery와 그의 놀라운 Tekpub MVC 샘플에서 이것을 훔쳤습니다. 내가 가진 모든 파일 이름이있을 때이 클래스에서

나는

public static string Image(this HtmlHelper helper, string fileName, string attributes) 
    { 
     fileName = string.Format("{0}/{1}/{2}", pubDir, imageDir, fileName); 
     if (string.IsNullOrEmpty(attributes)) 
     { 
      return string.Format("<img src='{0}'/>", helper.AttributeEncode(fileName)); 
     } 
     var temp = string.Format("<img src='{0}' '{1}' />", helper.AttributeEncode(fileName), helper.AttributeEncode(attributes)); 

     return temp; 
    } 

내가 다른 방법으로이 오버로드 (내 콘텐츠 디렉토리에 내 이미지 하위 폴더에 대한) 정적 변수를 (내 콘텐츠 디렉토리) pubdir과의 Imagedir 선언 . 내가보기에 이미지를 할 때

public static string Image(this HtmlHelper helper, string fileName) 
    { 
     return Image(helper, fileName, ""); 
    } 

는 지금은

@Html.Image("hello.jpg") 

은 사용자가 지정한 모든 파일 이름입니다 호출하고 이미지 태그 나에게 반환됩니다. 실제로이 값을 더 취하여 HelloImage라는 매개 변수를 사용하는 메서드를 만들면 실제 메서드에서 파일 이름을 지정할 수 있습니다.

이 작업을 수행했습니다. 배너 및 로고와 같은 것들이 모두 재사용됩니다. 컨트롤러, 액션 및 영역이 이동되거나 이름이 바뀌는 경우를 대비해 액션 링크에 대해서도 동일한 작업을 시작했습니다.

http://codingsmith.co.za/extending-the-actionlink-helper-in-mvc/

+0

css 파일에서 링크 된 이미지는 어떻게됩니까? 그들은 OP의 질문과 일치하지만이 대답은 아닙니다. – ANeves

관련 문제