2014-12-01 4 views
0

MVC4와 C# 및 Razor를 사용하여 간단한 웹 응용 프로그램을 만듭니다.Javascript가 PartialView에서 실행되지 않습니다.

public ActionResult GetPackageDetails(int id) 
{ 
    return PartialView("_EditPackageModal", new ModalEditPackage()); 
} 

부분보기, 예측으로 모달 팝업 쇼입니다 : 내 컨트롤러에서

나는이 경우, 사용자에게 표시되는 부분 뷰를 반환하는 메서드, 모달 팝업이 하지만, 어떤 자바 스크립트를 실행하지 않습니다

@model SuperApp.Model.ModalEditPackage 

<div class="modal fade bs-example-modal-lg" id="editPackageModal" tabindex="-1" role="dialog" aria-labelledby="editPackages" aria-hidden="true"> 
    <div class="modal-dialog modal-lg"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <h4 class="modal-title" id="myModalLabel">Edit Package @Model.packageName</h4> 
      </div> 
      <div class="modal-body"> 

       <div> 
        <label class="control-label">Package Name: </label> 
        <input type="text" class="form-control" id="package-name" placeholder="@Model.packageName"> 
       </div> 
      </div> 
      <div class="modal-footer"> 
       <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
       <button type="button" class="btn btn-primary">Save changes</button> 
      </div> 
     </div> 
    </div> 
</div> 

이 나는 ​​부분보기에서 실행하고자하는 자바 스크립트 코드 :

<script> 
    $("input").click(function() { 
     alert("hello world!"); 
    }); 
</script> 
이 질문을 읽고 나면

는 :

나는 해야이 부분보기에서 스크립트를 포함하는 것을 깨달았다. 요약하면 다음과 같습니다.

  1. 부분보기에서 내 프로젝트에있는 JS 코드를 실행할 수 없습니다.
  2. 는 부분보기는 직접적 괜찮이 예에서,

이제 <script> 태그를 사용하여 부분 뷰에 지정된 JS 코드를 실행하지만 현실 세계에서 나는 작업을 여러 스크립트를 가지고 부분보기, 그리고 그들은 상당히 큽니다. 또한 클라이언트는 이미 다른 뷰에서 사용 중이므로 번들을 이미 다운로드했으며 Bundles를 사용하고 있기 때문에 스크립트의 위치를 ​​부분 뷰에 표시하는 방법을 알지 못합니다.

스크립트를 부분보기에 직접 스매싱하지 않고도이를 해결할 수있는 방법이 있습니까?

+0

부분을 포함하는보기에서 스크립트를 실행할 수 있습니다.보기가 서버 쪽을 렌더링하고 브라우저에서 js가 실행되므로보기가 브라우저에 도달 할 때까지 아무 것도 의미가 없습니다. 그 중 일부는 부분보기에서 나왔습니다. 링크 된 질문은 부분보기에서 섹션을 가질 수 없다는 사실에 관한 것입니다. –

+0

그러나 그들의 해결책은 내 문제의 일부로 작동합니다. 적어도 부분 뷰는 JS를 실행할 수는 있지만 원하는 방식은 아닙니다. 내가 사용할 수있는 다른 솔루션이 있습니까? –

+0

그래서 부분 뷰는 실제로 AJAX 요청에 의해로드되고 있습니까? – tweray

답변

1

모든 모달 또는 HTML 블록에 고유 한 이름을 지정하십시오. 은 다음과 같이 당신의 JS 코드를 확인하십시오 : 번들에 포함 지정된 JS 파일에

$(document).on('click', '#yourSpecifiedDomElement input','click',function(){ 
    alert("hello world!"); 
}); 

장소 모든 자바 스크립트 코드를.

관련 문제