2009-07-27 23 views
7

Tôi rất mới với ASP.NET và, sau khi đánh đầu của tôi trên a few problems, tôi tự hỏi nếu tôi đang làm những việc sai (tôi đã có một thói quen xấu làm điều đó). Tôi quan tâm đến việc tìm hiểu về cách thức hoạt động của ASP.NET.Công cụ nên được thực hiện ở đâu trong trang ASP.NET?

Câu hỏi của tôi là: Tôi có thể tìm tài liệu hướng dẫn tôi trong việc quyết định nơi để xử lý những gì?

Như một vài ví dụ cụ thể (Tôi quan tâm đến câu trả lời cho những nhưng tôi thà được chỉ vào một nguồn cung cấp cho câu trả lời tổng quát hơn):

  • chế biến Những gì tôi nên làm gì trong Page_Load?
  • Tôi nên xử lý gì với sự kiện Load?
  • Điều gì có thể Tôi làm trong Page_Unload?
  • Thứ tự làm được thực hiện?
  • Khi nào mỗi sự kiện được kích hoạt?
  • Vòng đời của trang là gì?

chỉnh sửa: this question cũng có thể được sử dụng cho một số người.

+2

Vòng đời trang ASP.Net xác nhận một nạn nhân khác. – womp

+0

Cái gì? Giờ tôi có phải chịu số phận bị nghiện hay gì đó không? '' – BCS

+0

Không, chỉ là không hiệu quả. :-) –

Trả lời

4

Dưới đây là một số liên kết tốt để bạn bắt đầu. Hiểu được cách vòng đời ASP.NET khớp với nhau là rất quan trọng để hiểu cách mã của bạn sẽ tương tác với nó.

ASP.NET Page Life Cycle Overview:

Khi một trang ASP.NET chạy, trang trải qua một chu kỳ sống, trong đó nó thực hiện một loạt các bước xử lý. Chúng bao gồm khởi tạo, điều khiển ngay lập tức, khôi phục và duy trì trạng thái, chạy sự kiện mã xử lý và hiển thị. Đó là quan trọng để bạn hiểu vòng đời trang để bạn có thể viết mã ở vòng đời thích hợp cho hiệu ứng bạn dự định. Ngoài ra, nếu bạn phát triển tùy chỉnh điều khiển, bạn phải làm quen với trang vòng đời để khởi tạo một cách chính xác điều khiển, kiểm soát tính cư với xem dữ liệu quốc doanh, và chạy bất kỳ mã hành vi kiểm soát . (Vòng đời của điều khiển được dựa trên vòng đời trang chu kỳ, nhưng trang tăng thêm sự kiện để kiểm soát hơn chỉ dành cho một trang ASP.NET.)

The ASP.NET Page Life Cycle:

Khi một yêu cầu trang được gửi đến máy chủ Web , dù là thông qua một trình hoặc thay đổi vị trí, trang web được chạy thông qua một loạt các sự kiện trong quá trình tạo của nó và xử lý. Khi chúng tôi cố gắng tạo các trang ASP.NET và quá trình thực hiện này không được tính đến, chúng tôi có thể gây ra rất nhiều sự đau đầu cho chính mình là . Tuy nhiên, khi được sử dụng và được điều chỉnh một cách chính xác, chu kỳ thực hiện của trang có thể là công cụ mạnh mẽ và hiệu quả . Nhiều nhà phát triển đang nhận ra rằng sự hiểu biết về những gì xảy ra và khi điều đó xảy ra là quan trọng để viết các trang ASP.NET hoặc điều khiển người dùng một cách hiệu quả. Vì vậy, chúng ta hãy kiểm tra trong chi tiết mười sự kiện của một trang ASP.NET , từ sáng tạo đến xử lý. Chúng tôi cũng sẽ xem cách chạm vào các sự kiện này để cấy mã tùy chỉnh của riêng chúng tôi.

+0

Cả hai liên kết này đều hữu ích. Cảm ơn. – BCS

5

Điều đầu tiên bạn cần tìm hiểu để có thể hiểu các câu hỏi bạn vừa hỏi là: PAGE CUỘC SỐNG CUỘC SỐNG. Đó là một bitch đôi khi, đặc biệt là phần ViewState.

• Tôi nên xử lý gì trong Page_Load?

• Tôi nên xử lý gì với sự kiện Tải? = Page_load

• Tôi có thể làm gì trong Page_Unload? Dọn dẹp

• Thứ tự làm được gì? PAGE LIFE CYCLE

• Khi nào mỗi sự kiện được kích hoạt? PAGE LIFE CYCLE

• Vòng đời của trang là gì? alt text http://www.eggheadcafe.com/articles/o_aspNet_Page_LifeCycle.jpg

Edit: nguồn Ảnh: http://www.eggheadcafe.com/articles/20051227.asp

Thông tin thêm: http://www.codeproject.com/KB/aspnet/PageLifeCycle.aspx

+0

Bạn có liên kết đến nơi hình ảnh đó đến từ đâu không? Nó sẽ không tốt lắm nếu không có lời giải thích nào đó. – BCS

+1

Không phải là một bitch như dây lên xử lý sự kiện đối tượng được tạo động;) – BenAlabaster

+0

Thật không may, liên kết đó không cung cấp nhiều ngữ cảnh. – BCS

5

Các liên kết gửi của folks khác nhau rất hữu ích thực sự - chu trình ASP.NET cuộc sống trang thực sự không phải lúc nào cũng dễ dàng để grok và chủ!

Trên lời khuyên về nugget - Tôi khuyên bạn nên sử dụng các phương pháp ghi đè so với các phương pháp đính kèm "kỳ diệu", ví dụ: thích

protected override void OnLoad(EventArgs e) 

qua

protected void Page_Load(object sender, EventArgs e) 

Tại sao?Đơn giản: trong các phương pháp ghi đè, bạn có thể chỉ cho mình nếu và khi các phương pháp cơ sở sẽ được gọi là:

protected override void OnLoad(EventArgs e) 
{ 
    base.OnLoad(e); 
    // your stuff 
} 

hay:

protected override void OnLoad(EventArgs e) 
{ 
    // your stuff 
    base.OnLoad(e); 
} 

hoặc thậm chí:

protected override void OnLoad(EventArgs e) 
{ 
    // some of your stuff 
    base.OnLoad(e); 
    // the rest of your stuff 
} 

hoặc thậm chí:

protected override void OnLoad(EventArgs e) 
{ 
    // your stuff 
    // not call the base.OnLoad at all 
} 

Bạn không có sự linh hoạt trong phiên bản Page_Load().

Marc

2

Tôi chắc chắn sẽ khuyên bạn nên bạn đọc bài viết này:

http://www.west-wind.com/presentations/howaspnetworks/howaspnetworks.asp

Nếu bạn là người mới đến asp.net bạn sẽ có một số sự cố khi nhận tất cả điều đó, nhưng thực sự, tôi vẫn chưa tìm thấy một tài liệu chi tiết về chủ đề này từ tài liệu ms hoặc bất kỳ blog của nhân viên ms nào.

Tôi đã làm điều đó một cách khó khăn và đi theo mọi con đường tôi có thể sử dụng mã đã tháo rời nhưng anh chàng đó thực sự đã dành thời gian để viết nó.

+0

Thật thú vị khi đọc và đáng giá thời gian. 1 Tuy nhiên, nó dừng ngay dưới điểm tôi quan tâm đến việc tìm hiểu (nó * đến * mức thấp) – BCS

+0

Xin lỗi BCS, bạn hoàn toàn đúng về điều đó. – user134706

-1

Về cơ bản, hãy thử và thực hiện trong Page_Load và nếu cách này không hiệu quả, hãy thử trong Page_Init hoặc Page_Render. Thông thường một trong số họ hoạt động :) Đó là cách tiếp cận khoa học.

+0

Đối với người đã bỏ phiếu cho tôi xuống - đó là một trò đùa, ngớ ngẩn! –

+1

Và như một trò đùa, nó không nên ở gần đầu câu trả lời. – BCS

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