Có thể cho bộ điều khiển ASP.NET MVC để tạo một thể hiện mới của bộ điều khiển khác và ủy quyền có hiệu quả đối với điều khiển đó không?Bộ điều khiển khởi tạo .NET MVC bên trong bộ điều khiển khác
Hãy nói ví dụ mà tôi có hai bộ điều khiển trong thư mục/Bộ xử lý/thư mục:
public class HomeController : Controller
{
public ActionResult Index()
{
var otherController = new OtherController();
return otherController.ShowNumberOfThings(100);
}
}
public class OtherController : Controller
{
public ActionResult ShowNumberOfThings(int index)
{
return View(index);
}
}
... và một Xem gọi Views/Khác/ShowNumberOfThings.aspx:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="ViewPage<int>" %>
Number of things: <%= Model.ToString() %>
Khi tôi nhấn url:
tôi muốn có mặt ed với một trang mà đọc:
"Số thứ: 100"
Tôi muốn để có thể tồn tại dữ liệu tạm thời giữa chuyển hướng điều khiển mà không bị buộc phải sử dụng các đối tượng session (TempData [ ""] sử dụng đối tượng phiên cho chuyển hướng bộ điều khiển chéo). Trường hợp thế giới thực của tôi có một đối tượng phức tạp mà cần phải vượt qua (không chỉ là một int) để sử dụng một URL/Cookie là ra khỏi câu hỏi, và trạng thái phiên là một no-no.
Trong WebForms ít nhất chúng ta có thể sử dụng Server.Transfer và duy trì bất kỳ trạng thái nào trong bộ sưu tập HttpContext.Items. Trong MVC, tùy chọn duy nhất tôi có thể thấy là gọi phương thức điều khiển trực tiếp truyền vào các đối số được yêu cầu.
Hiện tại, có sự cố khi cố giải quyết thư mục chế độ xem vì "ngữ cảnh" vẫn đang chạy trong HomeController.
Tôi đoán nơi tôi đang đi với điều này là cố gắng để cludge ASP.NET MVC vào hành động như một FrontContoller.
Bất kỳ ý tưởng nào?
EDIT
Cuối cùng chúng tôi phải serialise tất cả mọi thứ vào một phiên làm việc và sử dụng đó. Một sự xấu hổ, nhưng tôi đã nghe nói rằng MVC2 sẽ hỗ trợ các đối tượng serialising vào ViewState.
Tôi đã làm điều gì đó rất giống với điều này đã hoạt động tốt - mô hình phải được chuyển chính xác, vì vậy điều gì về bối cảnh đó là vấn đề? – Keith