2012-09-21 29 views
47

Tôi đọc về các hành động của trẻ trong MVC (sách cơ bản), nhưng tôi thực sự không biết nó là gì?Hành động con của MVC là gì?

Có thể một số người vui lòng giải thích các phương pháp này không?

Trả lời

83

Phil Haack giải thích nó độc đáo trong this blog post. Về cơ bản một hành động con là một hành động điều khiển mà bạn có thể gọi từ màn hình bằng cách sử dụng Html.Action helper:

@Html.Action("SomeActionName", "SomeController") 

Hành động này sau đó sẽ thực hiện và đưa ra sản lượng của nó tại địa điểm quy định trong giao diện. Sự khác biệt với một phần là một phần chỉ bao gồm đánh dấu được chỉ định, không có hành động nào khác thực thi hơn hành động chính. Vì vậy, về cơ bản bạn có hành động chính nhận được yêu cầu và hiển thị chế độ xem, nhưng từ trong chế độ xem này, bạn có thể hiển thị nhiều hành động con sẽ trải qua vòng đời MVC độc lập của chúng và cuối cùng sẽ hiển thị kết quả đầu ra. Và tất cả điều này sẽ xảy ra trong bối cảnh của một yêu cầu HTTP duy nhất.

Hành động của trẻ là hữu ích để tạo toàn bộ các tiện ích có thể sử dụng lại có thể được nhúng vào chế độ xem của bạn và trải qua vòng đời MVC độc lập của chúng.

+0

có thể gọi hành động phi con xem FRIM? –

+10

Thực ra khi bạn gọi 'Html.Partial', hành động sẽ tự động là hành động con. Nếu bạn trang trí hành động bằng thuộc tính '[ChildActionOnly]' thì bạn có thể sử dụng nó chỉ như một hành động con - bạn không thể truy cập nó trực tiếp. –

+0

Tôi nghĩ rằng một sự khác biệt là phương pháp hành động có thể gọi từ bất kỳ chế độ xem nào? –

7

Hành động con là một hành động được gọi bằng cách sử dụng trình trợ giúp html.renderaction hoặc html.action từ bên trong chế độ xem.

1

Hành động con là một phương thức hành động được gọi trong chế độ xem qua @ Html.Action().

Ví dụ Tôi có một hành động trên bộ điều khiển của mình.

public DateTime Time(DateTime time) 
{ 
    return time; 
} 

Để gọi hành động này từ Xem tôi sẽ sử dụng:

@Html.Action("Time", new { time = DateTime.Now }) 
Các vấn đề liên quan