2010-10-17 35 views
5

Khi triển khai ASP.NET MVC AsyncController, phương thức xxxCompleted phải là Công khai. Tôi tự hỏi, nếu điều này có nghĩa là phương pháp xxxCompleted có thể được gọi trực tiếp, hoặc nếu điều này được bảo vệ nội bộ bằng cách sử dụng NonAction hoặc một cái gì đó tương tự?ASP.NET MVC AsyncController xxxCompleted

Cảm ơn.

Trả lời

2

Nội bộ (và đơn giản), có một mảng MethodInfo của các tác vụ trên bộ điều khiển async được tạo. Khi được xây dựng, các hậu tố AsyncCompleted bị tước khỏi tên phương thức hành động.

Nếu bạn thử gọi phương thức hành động như IndexCompleted, mảng này được tìm kiếm nhưng vì không có IndexCompleted trong mảng (vì hậu tố đã bị xóa), báo cáo AsyncControllerActionInvoker không tìm thấy hành động nào.

Đó là giá trị có một xô xung quanh mã nguồn để xem cho chính mình:

ASP.NET MVC 2 RTM on CodePlex