2014-03-13 2 views
0

내 ASP.NET MVC4 응용 프로그램에서 사이트 전체에서 내 기능에 대해 1 개의 javascript 파일이 있습니다. 이것은 꽤 잘 작동하지만 특정보기에서 특정 코드를 실행하려고합니다. 보통 나는 원하는 기능을 호출하는 뷰에 간단한 스크립트 태그를 넣음으로써이 문제를 해결할 것입니다. 그러나 body 태그의 맨 아래에 js 파일을로드하므로이 스크립트 태그는로드되기 전에 함수를 호출하므로 분명히 작동하지 않습니다.보기에만 해당되는 javascript 코드를 실행하십시오.

내 js 파일을 본문의 맨 아래에 유지하면서 다른 뷰에서 js 파일의 개별 부분을 어떻게 호출 할 수 있습니까?

+1

스크립트 참조 아래 레이아웃 페이지에 섹션을 놓고 해당 섹션에보기 스크립트를 넣으십시오. –

답변

1

여기에 몇 가지가 있습니다.

  1. 본인은 페이지에서 JavaScript를 직접 입력하지 않습니다. 이것에 대한 많은 이유가 있으며, 당신의 질문의 초점이 아니지만, 제가 가지고 싶었던 것입니다.

  2. 실제로 "main"에서 함수를 호출하는 main JS 파일 다음에로드되는 별도의 JS 파일을 가질 수 있습니다. 내 자바 스크립트에서 다음

    <div id="specific-page-name"></div> 
    

    간단하게 수행합니다 :

    if ($('#specific-page-name').length) { 
        // Run code 
    } 
    

    당신은 여전히 ​​JS 코드에서 뷰를 분리 할 수 ​​있습니다이 방법

0

내 접근 방식은 태그는 ID로보기는 말했다하다 . 내가 JS에 모델 데이터를 사용하는 경우

마지막으로, 나는 같은 것을 수행 할 수 있습니다

<div data-model-data="@Model.Data"></div> 

를 그리고 단순히 읽어 : 나는 매트에 의해 주어진 답을 자세히 설명하고있어

$('div').data('model-data'); 
0

그의 코멘트에서 : 당신의 레이아웃에서, 당신은 당신의 JS에서 될 당신의 경우에, 약간의 추가 HTML 내용을 원한다고 지정할 수 있습니다. 메인 JS 블록 다음에 추가 할 수 있습니다.

@RenderSection("AddScripts", required: false) 

그런 다음보기에, 당신은 섹션을 추가 할 수 있으며이 뷰에서 렌더링되지 않지만 레이아웃의 해당 섹션에 (주 JS 블록 후).

@section AddScripts { 
<script type="text/javascript"> 
... 
</script> 
} 
관련 문제