2010-10-13 45 views
8

Trong MVC 3 Beta, có sự khác biệt nào giữa các mẫu MVC 3 Trang một phần (Dao cạo)MVC 3 Xem trang có bố cục (Dao cạo)?Sự khác biệt giữa trang MVC 3 Partial Page (Razor) và MVC 3 View với Layout (Razor)?

Tôi đã thêm một phần trang (_partialList) vào ứng dụng của mình. Bây giờ khi tôi chỉ trả lại một phần khung nhìn, nó áp dụng Layout hiện diện trong _ViewStart.cshtml - hành động rất giống với một trang xem chuẩn với bố trí.

if (Request.IsAjaxRequest()) 
     return View("_partialList", someModelData); 

Trang "một phần" tự phân biệt với trang xem chuẩn với bố cục như thế nào? Liệu hai hành vi có khác nhau trong bất kỳ kịch bản cụ thể nào không?

Trả lời

9

Darin's response giải quyết vấn đề thực tế lại không muốn bố trí được áp dụng.

Về sự khác biệt giữa hai, trong Razor chúng thực tế giống nhau vì cả trang đầy đủ và partials sử dụng cùng một phần mở rộng và có cùng một lớp cơ sở.

Lý do tại sao có giao diện người dùng khác là vì trong công cụ xem Biểu mẫu web, hai công cụ được triển khai với các phần mở rộng khác nhau và các lớp cơ sở khác nhau, đó là lý do tại sao các mẫu riêng biệt là cần thiết.

+0

Tôi hiểu phần biểu mẫu web của nó, tức là trang và điều khiển người dùng - hai khái niệm khác nhau. Nhưng tôi sợ tôi không hoàn toàn hiểu được ý nghĩa của công cụ xem biểu mẫu web dành cho dao cạo. – Preets

+0

@Preets Công cụ xem WebForms không có hàm ý cho Razor khi chạy. Tuy nhiên, công cụ Visual Studio (hộp thoại Thêm Xem) hỗ trợ cả hai công cụ xem và do đó yêu cầu Dao cạo đi kèm với 2 tùy chọn mặc dù chúng hiện đang hoạt động tương đương. – marcind

+0

cảm ơn :) Tôi sẽ không bao giờ nghĩ ra điều đó! – Preets

0

Tôi không nghĩ có bất kỳ sự khác biệt nào.

+0

Bất kỳ ý tưởng nào về lý do chúng tồn tại? – Preets

10

Nếu bạn không muốn áp dụng cách bố trí trả về một PartialView thay vì View:

if (Request.IsAjaxRequest()) 
    return PartialView("_partialList", someModelData); 
+0

Cảm ơn bạn, tôi đã không nhận thức được điều đó. – Preets

+0

Nhưng tôi vẫn không chắc chắn lý do tại sao hai mẫu tồn tại khi chúng về cơ bản làm điều tương tự (tức là một phần xem/trang có bố cục)? – Preets

2

Số lượt xem có số này @ { View.Title = "Index"; Bố cục = "~/Lượt xem/Chia sẻ/_Layout.cshtml"; }

và quang cảnh một phần không

+0

View.Title DNE. – xanadont

3

Thêm mã sau đây vào trang của bạn, và các công cụ xem sẽ không áp dụng cách bố trí với nó.

@{ 
    Layout = null; 
} 
Các vấn đề liên quan