2011-10-29 31 views
10

Vấn đề này cũng tương tự như những gì được mô tả trong Execute Javascript inside a partial view in ASP.NET MVCJavascript không làm việc trong một phần Xem

Các mảnh dưới đây của mã trong index.cshtml đang làm việc tốt ...


<label for="locationOfSearch"> in :</label> @Html.TextBox("locationOfSearch") 

<input type="submit" value="Search" style="background-color:Green"/> 

@section JavaScript { 
    <script type="text/javascript"> 
     $(document).ready(function() { 


      $("#locationOfSearch").autocomplete({ 
       source: '@Url.Action("AutocompleteAsyncLocations")' 
      }) 



     }); 
    </script> 
} 

Nhưng khi tôi sao chép và dán mã ở trên và tệp tập lệnh tương ứng vào một chế độ xem khác và sau đó trong index.cshtml nếu tôi gọi Html.Partial (tên chế độ xem mới), Tự động điền không hoạt động ...

Vui lòng cho tôi biết làm thế nào tôi giải quyết nó mà không sửa đổi nhiều ...

+0

cố gắng gọi như thế này ... Html.RenderPartial (tên chế độ xem mới); –

+0

bạn đã kiểm tra bao gồm nhiều jquery tức là ở chế độ xem một phần và trong 'index.cshtml'? bạn có bị lỗi trong con đom đóm không? – Rafay

Trả lời

24

Bạn không thể sử dụng phần trong quang cảnh một phần. Họ chỉ đơn giản là không làm việc. Vì vậy, bạn sẽ phải giữ @section JavaScript trong chế độ xem để đăng ký tập lệnh và sau đó hiển thị phần sẽ chỉ chứa đánh dấu. Bạn cũng có thể viết các phương thức trợ giúp tùy chỉnh để đạt được điều này như được hiển thị trong this answer.

+1

nếu tôi sử dụng đơn giản thẻ –

+1

@Darin Dimitrov Tôi đã sử dụng chỉ ở chế độ xem từng phần cũng không hoạt động. Có cách nào để làm việc đó không? –

1

như những gì tôi biết, xem một phần cần phải có các tài liệu tham khảo của tất cả các kịch bản ngay cả khi bạn đã tham khảo nó trong trang master/bố trí. Những gì tôi luôn làm là tạo một khung nhìn từng phần (_Scripts.cshtml) và đặt tất cả các tham chiếu kịch bản + biểu định kiểu vào trong đó. sau đó tôi sẽ gọi xem phần này ở mọi điểm:

@Html.Partial("_Scripts") 

Hy vọng điều này là những gì bạn muốn, nhờ :)

+0

Tôi đã thử Html.RenderPartial; Cùng một vấn đề Không có nhiều tệp bao gồm ... Tôi cũng đã làm như vậy như được nói bởi user834754 .. Tôi vẫn gặp vấn đề !!! –

Các vấn đề liên quan