我已經爲Vdex做這裏建議: https://stackoverflow.com/a/5801502/973485 和所使用的方法RenderPartialToString
他發現。它完美的作品是這樣的:查看到字符串從另一個控制器
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
public ActionResult Test()
{
string t = ViewToString.RenderPartialToString("Index", null, ControllerContext);
return Content(t);
}
}
但是,如果我想從另一個控制器使首頁>指數,我得到:
Value cannot be null.
Parameter name: controllerContext
像這樣:
public class FooController : Controller
{
public ActionResult Index()
{
string t = ViewToString.RenderPartialToString("Index", null, new HomeController().ControllerContext);
return Content(t);
}
}
有任何方式來從另一個控制器傳遞一個視圖到一個字符串?我嘗試了許多不同的方法,並且它們都在ControllerContext上失敗。非常感謝!
更新:爲什麼我需要這樣做:
想象我有一個網站全小部件,部件的每一頁上的量是動態的,所以我不能硬編碼他們在我CSHTML文件。但是在該文件中,定義了小部件獲取打印出來的不同區域。要打印出這些小部件,我有一個IWidgetController列表,其中包含可用的不同小工具,以及他們需要包含用於編輯,新建和查看的ActionResult的界面。窗口小部件的例子:CalenderController,NewsController,GalleryController等...所以在這些區域我需要打印出每個控制器的內容。現在我也可以加載URLHTML,但我想從內部做它會更快......對嗎?
如果你只是想傳遞的主頁,富/指數的主頁,那麼你可以只返回一個路徑/首頁/索引視圖,除非我在想念的東西在這裏 – davethecoder
年,我建立一個CMS系統,和我有一個用於所有Widget控制器的接口。我有一份清單。然後數據庫的願望,控制器是在頁面上,在不同的領域。 – BjarkeCK
你不能只從你的視圖做Html.RenderAction(「_ CalendarWidget」,「日曆」)? –