2009-05-21 29 views
29

Mặc dù phương pháp ASP cổ điển của phía máy chủ bao gồm các công trình trong ASP.NET, tôi nhận được ấn tượng nó không phải là phương pháp ưa thích. Làm thế nào tôi "được cho là" để đạt được hiệu quả tương tự?ASP.NET tương đương với phía máy chủ bao gồm

Đây là cách tôi đang làm nó vào lúc này:
<!-- #include file ="functionlib.aspx" -->

+0

Mặc dù không phải càng cụ thể càng câu hỏi của bạn, bạn có thể tìm thấy điều này một hữu ích: http://stackoverflow.com/questions/23899/best-practices-for-refactoring-classic-asp –

Trả lời

34

Bây giờ bạn có một số tùy chọn cung cấp hiệu ứng này, nhưng theo cách khác.

  • User Controls (ascx)
  • Master Pages (.master)
  • Server Side Controls (.dll)
  • Class Libraries (.dll)
  • Lớp App_Code (.cs /. vb)

Mỗi loại được sử dụng để khác nhau để đạt được những thứ khác nhau. Nó phụ thuộc vào những gì bạn đang thực sự cố gắng làm. Với tên của tệp bao gồm của bạn, tôi tưởng tượng bạn đang cố gắng bao gồm các hàm thư viện sẽ được sử dụng trong ngữ cảnh của trang của bạn.

Do đó bạn sẽ viết thư viện lớp chứa các phương thức và nhập chúng vào ứng dụng/aspx của bạn.

Nếu bạn đang xem xét việc tạo mẫu trang sẽ thực hiện hầu hết công việc bố cục để cung cấp nội dung cho nội dung khác nhau, bạn sẽ quan tâm đến Trang chính.

Nếu bạn đang xem xét các điều khiển templating có thể được sử dụng trong nhiều trang, thì bạn sẽ có sau khi điều khiển người dùng.

Nếu bạn đang xem xét các điều khiển templating có thể được sử dụng bởi nhiều người dùng trên nhiều dự án, thì bạn sẽ nhìn vào Điều khiển phía máy chủ.

Nếu bạn đang xem thư viện lớp/phương pháp, bạn sẽ phát triển một thư viện lớp hoặc sử dụng lớp app_code có thể được JIT biên soạn lần đầu tiên được gọi. Điều này có thể tại một đoạn được coi là giống như ASP cổ điển, nhưng thực sự nó hoạt động giống như một lớp học từ một thư viện lớp như một đơn vị duy nhất.Bạn có thể gọi nó từ trong thẻ codebehind hoặc trong các thẻ <%%> trong mã aspx/ascx mà không yêu cầu tham chiếu đến thư viện lớp.

Chúng tôi không thực sự sử dụng "bao gồm" mỗi lần nữa, nhưng mỗi công cụ trong bộ công cụ của bạn cho phép bạn cung cấp các khái niệm tương tự cho các kịch bản khác nhau. Là một nhà phát triển, bạn sẽ tương tác với toàn bộ vòng đời của trang web của bạn một cách khác nhau. ASP.NET là một con thú rất khác so với ASP cổ điển. Nó thực sự có một cái nhìn khác nhau/cách tiếp cận và sẽ mất một số lượng kiên nhẫn để tìm ra sự khác biệt.

+2

Đừng quên các lớp App_Code - gần với mô hình ASP cổ điển hơn là một Thư viện lớp. –

+0

Ồ vâng, tôi quên những ... cảm ơn – BenAlabaster

8

Nếu đó bạn đã sử dụng ASP.NET MVC sau đó Html.RenderPartial là bạn của bạn ở đây.

http://msdn.microsoft.com/en-us/library/system.web.mvc.html.renderpartialextensions.renderpartial.aspx

Một cái nhìn cục bộ có thể được thực hiện như một ascx hoặc .aspx và đặt cuộc gọi trên trong trang "chính" của bạn về cơ bản nói "nhận được đầu ra khỏi tầm nhìn phần này và làm cho nó ở đây".

Chế độ xem song song có thể sử dụng Chế độ xem mà chế độ xem chính của bạn nhận được từ bộ điều khiển.

+0

Chỉ nếu bạn đang ở trong ASP.NET MVC. –

+1

Er ..... yeah. Vì một số lý do tôi đọc "MVC" trong câu hỏi khi nó rõ ràng không có. Mọi người vẫn đang làm cũ-skool ASP.NET ??? ;-) –

+0

lol @ Martin ... er, vâng. MVC chỉ là một mốt nhất thời mà mọi người sẽ ngừng sử dụng vào tuần tới. Hãy để các cuộc chiến tranh tôn giáo bắt đầu;) – BenAlabaster

1

Âm thanh như những gì bạn cần xem là toàn bộ khái niệm về MasterPages.

Trừ khi bạn chỉ xem xét chức năng nhập và các tiện ích khác (không phải nội dung html). Nếu đó là trường hợp (và bạn đang sử dụng mô hình mã phía sau), bạn chỉ có thể bao gồm tệp hoặc vùng tên thích hợp bằng cách sử dụng lệnh nhập khẩu ở đầu trang .vb của bạn (điều chỉnh cho phù hợp với C#).

11

Làm thế nào về <% Response.WriteFile("myFile.aspx) %>?

Xem: https://support.microsoft.com/kb/306575

+0

Đơn giản và hiệu quả. Tôi thích :). –

+11

chỉ để làm rõ, mặc dù tệp được bao gồm kết thúc bằng '.aspx', nó sẽ không được xử lý bởi công cụ asp.net – mxmissile

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