我有一個佈局和一個局部視圖,它們位於共享文件夾中。部分視圖顯示不是靜態的頂層菜單項。所以我需要調用一個操作方法從數據庫獲取菜單項。爲此,我創建了一個控制器並在其中添加一個操作方法。從ASP.NET MVC中的佈局調用操作方法
當我嘗試瀏覽網頁瀏覽器的頁面,這個錯誤發生:
的路徑控制器「/」沒有被發現,或者不執行一個IController。
注: 我試過Html.RenderAction,Html.Partial方法太... 我試圖創建另一個視圖文件夾,並創建一個以「文件夾名稱命名的新的局部視圖和新的控制器+控制器「後綴。
佈局:
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
</head>
<body>
<div id="header">
@Html.Action("~/Views/Shared/_TopMenu.cshtml", "LayoutController", new {area =""}); //Here is the problem.
</div>
<div>
@RenderBody();
</div>
</body>
</html>
_TopMenu.cshtml:
@model IList<string>
@foreach (string item in Model)
{
<span>item</span>
}
LayoutController(在控制器文件夾):
public class LayoutController : Controller
{
//
// GET: /Shared/
public ActionResult Index()
{
return View();
}
[ChildActionOnly]
[ActionName("_TopMenu")]
public ActionResult TopMenu()
{
IList<string> menuModel = GetFromDb();
return PartialView("_TopMenu", menuModel);
}
}
錯的是隻使用一個控制器參數的方法?我記得我用'RenderAction'也使用了'Layout'。但它沒有奏效。也許我必須睡覺。謝謝! – 2014-10-29 13:37:00
我不能放鬆。我嘗試了很多解決方案建議。喜歡你的答案。爲什麼它沒有奏效?你知道理由嗎? – 2014-10-29 13:38:11