2011-06-21 5 views
13

Tôi thấy 2 thuộc tính này nhưng tôi không thể hiểu được sự khác biệt giữa chúng?
Tôi không thể tìm thấy bất kỳ trợ giúp nào ở bất kỳ đâu về quyền sở hữu của PageData.
để mọi người có thể giúp đỡ bạn?sự khác biệt giữa ViewData & PageData trong asp.net MVC 3 là gì?

@ 
{ 
Viewdata["something"] = 1; 
PageData["something"] = 2; 
} 

nhờ

+2

Hi Karim, có thể là trong đoạn mã của bạn, bạn có "ViewPage", nhưng trong câu hỏi của bạn, bạn có "PageData". – dizzwave

+0

cảm ơn cho rằng, cố định – Karim

Trả lời

12

PageData là một tài sản của các trang web mà Razor được xây dựng trên

[nó] Cung cấp mảng giống như truy cập vào dữ liệu trang đó được chia sẻ giữa các trang, các trang bố trí, và các trang một phần.

http://msdn.microsoft.com/en-us/library/system.web.webpages.webpagebase.pagedata(v=VS.99).aspx

ViewData là một tài sản của ViewPage và cung cấp một phương pháp truyền dữ liệu giữa bộ điều khiển và một trang.

Lấy hoặc đặt từ điển chứa dữ liệu để truyền giữa bộ điều khiển và chế độ xem.

http://msdn.microsoft.com/en-us/library/system.web.mvc.viewpage.viewdata.aspx

ViewData có thể truy cập thông qua bộ điều khiển, PageData thì không.

+0

cảm ơn, nhưng vấn đề này là rất khó hiểu, cũng có bạn xảy ra để biết nếu có 2 có một mối quan hệ với HttpContext.Current.Items []? tôi đã sử dụng này trước khi asp.net MVC trong các hình thức web. nhưng nó nhắc nhở về 2 proprities này. – Karim

-2

ViewData là một tài sản của tài sản ViewPage và cả hai đều đang trong lớp ViewPage ....

+0

xin lỗi tôi đã làm sai trong mẫu, Pagedata của nó không ViewPage – Karim

1

tôi chắc chắn không phải là 100%, nhưng có vẻ như PageData là một cái gì đó từ WebMatrix (môi trường phát triển web "ánh sáng" của MS). Và ViewData là một cái gì đó được hỗ trợ đầy đủ trong MVC. ViewData nằm trong không gian tên System.Web.Mvc, và do đó bất kỳ ứng dụng MVC nào sẽ có sẵn.

PageData rõ ràng (theo MSDN) trong không gian tên System.Web.WebPages, nhưng tôi không thể truy cập PageData từ bộ điều khiển MVC của mình, ngay cả khi tôi đủ điều kiện. Có lẽ nó không có nghĩa là để được truy cập từ phía bộ điều khiển, như ViewData có thể được ...?

Có một số thông tin khác về PageData trong câu hỏi StackOverflow khác here, nhưng thông tin trên trang web đáng ngạc nhiên thưa thớt (như bạn có thể đã tìm thấy).

Tôi hy vọng điều đó sẽ hữu ích!