我有一个布局和一个局部视图,它们位于共享文件夹中。部分视图显示不是静态的顶层菜单项。所以我需要调用一个操作方法从数据库获取菜单项。为此,我创建了一个控制器并在其中添加一个操作方法。从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