2011-06-20 33 views
6

Tôi nhận được bàn tay của mình trên MVC 3 và tôi bối rối rằng làm thế nào để tôi sử dụng UserControls trong dự án của tôi.hiển thị usercontrol (cshtml) bằng cách sử dụng @ Html.Partial

Tôi đã tạo một tệp usercontrol (cshtml) có tên là UserControl.cshtml và tôi đang cố gắng hiển thị nó là Products.cshtml.

MyUserControl.cshtml nằm trong thư mục được chia sẻ.

Trong Products.cshtml:

<div> 
    @Html.Partial("MyUserControl.cshtml"); 
</div> 

Nhưng tôi đang nhận được lỗi này. Tôi không biết tại sao nó cố gắng tìm kiếm .ascx file .:

The partial view 'MyUserControl.cshtml' was not found or no view engine supports the searched locations. The following locations were searched: 
~/Views/Products/MyUserControl.cshtml.aspx 
~/Views/Products/MyUserControl.cshtml.ascx 
~/Views/Shared/MyUserControl.cshtml.aspx 
~/Views/Shared/MyUserControl.cshtml.ascx 

Đây có phải là cách chính xác để hiển thị usercontrol trong mvc 3?

--Cập nhật -

Tác phẩm này hoạt động.

@RenderPage("../Shared/MyUserControl.cshtml") 

Trả lời

14

Bạn không cần chỉ định phần mở rộng tệp, công cụ xem sẽ xử lý.

@Html.Partial("MyUserControl") 
+0

Cảm ơn bạn. Những công việc này. Điều gì nếu tôi muốn một số hành động của MyUserControl được gọi bydefault khi nó tải? Cũng giống như phương thức Page_Load của Asp.Net Usercontrol. Làm thế nào để làm điều đó? Tôi không muốn gọi @ {Html.RenderAction ("Index", "MyUserControl");} trong Products.cshtml. – Asdfg

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