ASP.NET MVC控制器是否可以創建不同控制器的新實例並有效地將責任委派給那個?.NET MVC在另一個控制器內部實例化控制器
比方說,例如,我在/控制器/目錄中的兩個控制器:
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);
}
}
...和查看稱爲視圖/其它/ ShowNumberOfThings.aspx:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="ViewPage<int>" %>
Number of things: <%= Model.ToString() %>
當我打的網址:
我想是存在ED與頁面讀取:
「的東西數:100」
我想能夠堅持控制器重定向之間的臨時數據,而無需被迫使用會話對象(TempData的[「」]的用途交叉控制器重定向的會話對象)。我的現實世界的案例有一個複雜的對象需要通過(不只是一個int),所以使用URL/Cookie是不可能的,會話狀態是一個不允許的。
在WebForms中,至少我們可以使用Server.Transfer並在HttpContext.Items集合中維護任何狀態。在MVC中,我可以看到的唯一選擇是直接調用控制器方法傳入必需的參數。
目前它無法解析視圖文件夾,因爲「上下文」仍在HomeController下運行。
我想我要去哪裏試圖將ASP.NET MVC整合爲FrontContoller。
任何想法?
編輯
最後,我們不得不一切連載到一個會話並使用它。令人遺憾的是,我聽說MVC2將支持串行化對象到ViewState中。
我已經做了一些非常類似於此的工作正常 - 模型應該正確傳遞,那麼這是什麼問題的上下文? – Keith