2013-08-06 3 views
8

MVC4 웹 응용 프로그램이 있으며 현재 여러 페이지 (cshtml에 정의되어 있음)에 사용되는 @helper이 있습니다. 문제는 사용 된 각 페이지에서이를 정의해야한다는 것입니다. 내 @helper이 모두 포함 된 파일 .cshtml을 만들고 해당 페이지를 내보기에 포함시킬 수 있습니까?다른 파일로 일반적인 면도기 도우미 이동

즉, 이것은 cms 영역의 모든 색인보기에서 사용됩니다.

@helper DisplayPager(Int32 CurrentPage, Int32 MaxPages) { 
    String IsActive = ""; 
    <div class="pagination pagination-centered"> 
     <ul> 
      <li><a href="@Url.Action("Index", new { id = CurrentPage - 1 > 0 ? CurrentPage - 1 : 1 })">Prev</a></li> 
      @for (int i = 0; i < MaxPages; i++) 
      { 
       IsActive = ((i + 1) == CurrentPage) ? "active" : ""; 

       <li class="@(IsActive)"><a href="@Url.Action("Index", new { id = i + 1 })">@(i + 1)</a></li>  
      } 
      <li><a href="@Url.Action("Index", new { id = CurrentPage + 1 < MaxPages ? CurrentPage + 1 : MaxPages })">Next</a></li> 
     </ul> 
    </div> 
} 

동일한 정의, 동일한 코드, 모든 것이 동일하지만 코드에 적어도 15 번 이상 있습니다. 여기

+0

에서 그것을 복사,하지만 난 그냥 정적 클래스 파일이 추천 할 것입니다 ('.cs')의 모든 일반적인 기능을 갖는다. 이 파일을'@include MyProject.MyHelpers'와 함께'.cshtml' 파일에 포함시킬 수 있습니다. – musefan

+0

대답하기 쉽게 코드를 업데이트했습니다. – bizzehdee

+0

@helper 구문을 사용하여 재사용 가능한 도우미 메서드를 정의하는 기능은 다음을 참조하십시오. http://weblogs.asp.net/scottgu/archive/ 2011 년 5 월 12 일/asp-net-mvc-3-and-the-helper-syntax-within-razor.aspx –

답변

10

지침이 절차는 어떻게 방금 설명한대로 메모를 작성 도우미를 만드는 방법을 보여줍니다

것을 달성하는 것입니다. 이것은 간단한 예이지만 사용자 지정 도우미는 필요한 마크 업과 ASP.NET 코드를 포함 할 수 있습니다.

  1. 웹 사이트의 루트 폴더에 App_Code라는 폴더를 만듭니다. 이것은 ASP.NET에서 헬퍼와 같은 구성 요소에 대한 코드를 넣을 수있는 예약 된 폴더 이름입니다.

  2. App_Code 폴더에서 새 .cshtml 파일을 만들고 이름을 MyHelpers.cshtml로 지정합니다.

  3. 은 다음과 같이 기존의 내용을 대체합니다

    @helper MakeNote(string content) 
    { 
        <div class="note" 
         style="border: 1px solid black; width: 90%; padding: 5px; margin-left: 15px;"> 
        <p> 
         <strong>Note</strong>&nbsp;&nbsp; @content 
        </p> 
        </div> 
    } 
    

    코드는 MakeNote이라는 새 도우미를 선언 @helper의 구문을 사용합니다. 이 특정 도우미를 사용하면 텍스트와 마크 업의 조합을 포함 할 수있는 content라는 매개 변수를 전달할 수 있습니다. 도우미는 @content 변수를 사용하여 문자열을 메모 본문에 삽입합니다.

    파일의 이름은 MyHelpers.cshtml이지만 도우미의 이름은 MakeNote입니다. 여러 사용자 지정 도우미를 단일 파일에 넣을 수 있습니다.

  4. 파일을 저장하고 닫습니다.

그것은 그 방법의 몸이 무엇인지 따라이 article

+5

이 작업은 표준 방법 인 것처럼 보일 수 있지만 그렇게 끔찍한 해킹입니다. Microsoft가 App_Code를 공유 헬퍼를 저에게 넘길 장소로 결정한 이유. 보기는보기 폴더에 있어야합니다. 이것은 완전히 반 직관적입니다. – user1751825

관련 문제