【发布时间】:2017-10-13 18:07:49
【问题描述】:
我试图在我的 _Layout.cshtml 文件中调用 IEnumerable 方法。最后我被建议“使用 html.action - 调用填充集合并返回部分视图的服务器方法”。
目前我已经创建了部分文件 _Dodatki.cshtml,其中包含 IEnumerable 方法的调用(Aktualnosci.cs 是模型文件):
@model IEnumerable<DluzynaSzkola.Models.Aktualnosci>
在我的 _Layout.cshtml 中,我从构造函数中调用了方法:
@Html.Action("_Dodatki", "AktualnosciController ", new {area="" })
最后我想在我的 AktualnosciConstructor.cs 文件中创建方法。目前我有方法:
[ChildActionOnly]
[ActionName("_Dodatki")]
public ActionResult Dodatki()
{
IList<Aktualnosci> lista = new IList<Aktualnosci>();
return PartialView("_Dodatki", lista);
}
不幸的是,当使用上述语法时,它在编译器中给了我消息:
"无法创建抽象类或接口的实例 'IList'”。
将“IList”替换为“List”时,出现异常:
“System.Web.HttpException:找不到路径'/'的控制器 或不实现 IController。”
我不知道如何以其他方式在方法中填充集合。
编辑:根据要求,在 AktualnosciController.cs 定义下,没有其他方法:
namespace DluzynaSzkola.Controllers
{
public class AktualnosciController : Controller
{
//here are other methods
[ChildActionOnly]
[ActionName("_Dodatki")]
public ActionResult Dodatki()
{
IList<Aktualnosci> lista = new IList<Aktualnosci>();
return PartialView("_Dodatki", lista);
}
}
}
【问题讨论】:
-
你能告诉我们整个控制器吗?也许排除其他方法,但至少是控制器定义。
-
什么时候收到
"System.Web.HttpException: The controller for path '/' was not found or does not implement IController."异常?当你点击链接时? -
@Wndrr 我在开始编译应用程序时得到它(在主页上布局)。
-
这可能是原因但不确定...在您的视图中您有
@Html.Action("_Dodatki", "_Layout")... 这意味着您正在寻找_Dodatki控制器中的_Dodatki操作...您没有_Layout控制器……你有Aktualnosci控制器……所以尝试更改为@Html.Action("_Dodatki", "Aktualnosci")
标签: c# asp.net asp.net-mvc asp.net-mvc-4 razor