2011-12-19 34 views
9

Chúng tôi có một giải pháp đang chạy chứa nhiều ứng dụng web forms với cùng trang chính, chúng tôi đã tạo một dự án thư viện lớp cho trang cái và các điều khiển của nó. dll bên trong mỗi ứng dụng biểu mẫu web và gán trang chính theo chương trìnhsử dụng trang chủ dạng trang web có dạng

Bây giờ chúng tôi sẽ thêm hai ứng dụng mới vào giải pháp của mình nhưng chúng tôi quyết định sử dụng ASP.Net MVC 3 để xây dựng các ứng dụng mới này.

Vấn đề là, chúng ta phải sử dụng cùng một trang chính cho các ứng dụng mới, vậy làm cách nào chúng ta có thể đặt trang chính cho các chế độ xem của chúng tôi bằng mã?

Cẩn thận nhớ trang chính của chúng tôi là một dự án thư viện lớp học.

Trả lời

3

Nhìn vào bài viết này để có được một cái nhìn tổng quan về trộn Webforms với MVC:

Một dự án thú vị là Zeus khi nói đến một Webforms hỗn hợp/MVC giải pháp . Nó chứa những người trợ giúp để sử dụng HtmlHelper và UrlHelper trên các trang Webform.

+0

cảm ơn các bài đăng tuyệt vời nhưng nó nói về trang cái bên trong dự án web không phải là dự án thư viện lớp (dll). –

+0

Bài viết này nói về việc chia sẻ một trang chủ giữa ASPX engine và Razor Engine. Đây có phải là phương pháp tương tự để chia sẻ một trang ASP.Net Mater thông thường với dự án ASP.Net MVC 3.0 Razor Engine không? – HaBo

+0

@HaBo: Tôi không hiểu chính xác câu hỏi của bạn. Các bài viết nói về việc sử dụng một Masterpage Webforms với ASP.NET MVC Razor Views. – Jan

1

Nếu bạn thực sự muốn đi tuyến đường MVC di chuyển về phía trước thì có lẽ bạn nên đầu tư một thời gian để chuyển đổi trang cái của bạn thành bố cục. Mọi thứ khác sẽ là một hack/workaround.

1

Amir, tôi đã tải lên mẫu đang hoạt động tại here. Các bước,

1) Đã tải xuống và chuyển đổi ứng dụng mẫu từ here.

2) Thêm ứng dụng MVC 3 vào giải pháp này và Thêm tham chiếu thư viện lớp của giải pháp trên.

3) Chỉ định MasterPage ở chế độ xem MVC (hoặc ở chế độ xem, MasterPageFile="~/MasterPageDir/MasterPage.master" hoặc trong bộ điều khiển trả lại View("Index",masterName: MasterPageVirtualPathProvider.MasterPageFileLocation);).

4) Đặt các dòng này trong global.asax.

MasterPageVirtualPathProvider vpp = new MasterPageVirtualPathProvider(); 
HostingEnvironment.RegisterVirtualPathProvider(vpp); 
+0

+1 cho bạn câu trả lời nhưng nó phụ thuộc vào 'VirtualPathProvider'. tiếc là dự án cũ của chúng tôi không sử dụng nó: (Có vẻ như tôi phải sao chép trang chủ Html vào chế độ xem '_layout' của tôi và tạo kiểu và hình ảnh tham chiếu đến phiên bản sản xuất (trực tuyến). –

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