2011-06-30 27 views

Trả lời

15

Yes. Hãy thử điều này thay vì:

@Html.Partial("Footer") 

hoặc

@{ Html.RenderPartial("Footer"); } 
+11

Ngoài ra, thay đổi code-behind của điều khiển để nó được thừa hưởng từ System.Web.Mvc.ViewUserControl thay vì System.Web.UI.UserControl – Webveloper

+0

cảm ơn vì đã cứu tôi :) @Webdeveloper: bạn đề cập đến điểm quan trọng, mà không rằng nó đã ném ngoại lệ. –

+1

Tôi phải thêm phần mở rộng này để làm việc cho tôi '@ Html.Partial (" Footer.ascx ")' (với MVC4) – pauloya

0

Chỉ muốn thêm rằng tôi đã không nhìn thấy có rất nhiều người đăng giải pháp này:

Html.RenderAction("Footer", "Home"); 

Đây là thực hành tốt hơn nếu bạn đang sử dụng MVC, bởi vì bạn có thể chỉ định bất kỳ dữ liệu nào bạn cần trong bộ điều khiển thay vì cố quản lý nó trong chế độ xem một phần tự do thả nổi. Rất có lợi nếu bạn sử dụng một lớp BaseController để khởi tạo tất cả các cuộc gọi của bạn.

public class HomeController : Controller { 
    // ... 

    [ChildActionOnly] 
    public PartialViewResult Footer() { 
     // do work 
     return PartialView(); 
    } 

    // ... 
} 
Các vấn đề liên quan