2013-07-26 27 views
19

Khi trạng thái tiêu đề, tôi muốn xác định một phần trong chế độ xem một phần.ASP MVC Xác định phần trong chế độ xem một phần

Mã của tôi mà tôi đã thử nghiệm với như sau:

Bộ điều khiển:

public ActionResult Test() 
{ 
    return View(); 
} 

public ActionResult PartialTest() 
{ 
    return PartialView("_PartialTest"); 
} 

Test.cshtml:

@{ 
    ViewBag.Title = "Test"; 
} 

<h2>Test</h2> 

@Html.Action("PartialTest") 

_PartialTest.cshtml:

<p>partial Test</p> 

@section scripts { 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      alert("Test"); 
     }); 
    </script> 
} 

Đặt phần scripts trong Test.cshtml hoạt động tốt nên vấn đề không nằm trong bố cục.

Bất kỳ ai biết cách thực hiện việc này?

+0

Có cảm ơn đó là những gì tôi đang tìm kiếm :) –

+0

Điều này dường như đã thực hiện thủ thuật cho tôi: http://stackoverflow.com/questions/7556400/injecting-content-into-specific-sections-from-a -partial-view-asp-net-mvc-3-with # 15971504 – Schalk

Trả lời

33

Một phần lượt xem không hỗ trợ thẻ @section. Bạn nên thêm chúng vào chế độ xem có tham chiếu chế độ xem một phần. Xem câu hỏi này để biết thêm thông tin: Injecting content into specific sections from a partial view ASP.NET MVC 3 with Razor View Engine. Về cơ bản, thực tế là chế độ xem chính tham chiếu một phần phải chịu trách nhiệm về việc bao gồm Javascript, chứ không phải là chính chế độ xem một phần.

+19

Mặc dù đây là câu trả lời cho câu hỏi (nó không được hỗ trợ), nó đặt ra câu hỏi, tại sao một phần lượt xem bị hạn chế? Trong một số ứng dụng, bạn muốn có khả năng tạo "tiện ích con" và cách khác để tạo "tiện ích con" hơn là sử dụng chế độ xem một phần? Ngoại trừ một thực tế là nó rất hạn chế và phụ thuộc nhiều vào quan điểm của cha mẹ mà hoàn toàn đánh bại mục đích. Có tương đương với điều khiển người dùng (biểu mẫu web) trong dao cạo MVC không? – Keith

+0

Tôi biết đây là một câu hỏi cũ nhưng tôi đang cố gắng tìm ra giải pháp cho chính xác điều này: muốn bao gồm tập lệnh/widget cụ thể 'tiện ích' trong chế độ xem trong đó nó được hiển thị? Bất cứ ai có một giải pháp tốt? –

+0

Thật dễ dàng để viết một số loại trình quản lý tập lệnh/tiện ích mở rộng mà bạn có thể gọi từ bất kỳ mô-đun nào và sau đó có phương thức in các tập lệnh độc đáo/riêng biệt trên chế độ xem gốc/chính. –

5

Tôi biết câu hỏi này là siêu out-ngày, nhưng đối với ai ngoài kia vẫn có thể tự hỏi (như tôi là):

Bạn thực sự có thể khắc phục vấn đề này bằng cách thay đổi phần @section scripts { } trong quang cảnh một phần của bạn để này:

@using (Html.BeginScriptContext()) 
{ 
    Html.AddScriptBlock(
     @<script type="text/javascript"> 
     //rest of script 
    ); 
} 

Điều này sẽ cho phép bạn có kịch bản ở chế độ xem một phần và đạt được cấu trúc giống như tiện ích đó. Hi vọng điêu nay co ich!

+0

Tôi nghĩ rằng đây là đề cập đến chức năng được cung cấp bởi một gói bên thứ ba ForLoop.HtmlHelpers (https://www.nuget.org/packages/Forloop.HtmlHelpers/) –

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