我正在尝试在 _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 文件中创建方法。 Currenly我有方法:
[ChildActionOnly]
[ActionName("_Dodatki")]
public ActionResult Dodatki()
{
IList<Aktualnosci> lista = new IList<Aktualnosci>();
return PartialView("_Dodatki", lista);
}
不幸的是,当使用上面的语法时,它在编译器中给出了消息:
&#34;无法创建抽象类或接口的实例 &#39;的IList&#39;&#34;
更换&#39; IList&#39;使用&#39; List&#39;,它给了我例外:
&#34; System.Web.HttpException:路径控制器&#39; /&#39;没找到 或者没有实现IController。&#34;
我不知道如何以其他方式填充方法中的集合。
编辑:根据请求,在 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);
}
}
}
答案 0 :(得分:0)
注意GTown-Coder您的控制器名称似乎错了。相应地更新了我的答案。
我认为您的问题可能与this SO post所回答的问题相同。
尝试指定区域名称,如果此控制器不在区域中,则只需添加空区域名称。
@Html.Action("_Dodatki", "AktualnosciController ", new {area="" })
即使这不能解决您的问题,这也是一种很好的做法,因为如果该视图后来在一个区域中使用,它将尝试在该区域中找到控制器,而不是在根空间中。
答案 1 :(得分:0)
好吧,我已经对我的项目实施了更改,这很好。
我的 _Layout.cshtml 电话有点改变了。 AktualnosciController 应该被称为 Aktualnosci !!!
<div class="kontenerDodatkiLayout hidden-xs hidden-sm">
<div class="archiwum">Archiwum</div>
@Html.Action("_Dodatki", "Aktualnosci", new { area = "" })
</div>
我的部分视图 _Dodatki.cshtml 模型调用有点改变:
@model IEnumerable<DateTime>
<div class="wpisDodatki">
@foreach (var item in Model)
{
<div> @Html.DisplayFor(modelItem => item)</div>
}
<p>test<br />test<br />test</p>
</div>
我的控制器中的方法 AktualnosciController.cs 看起来像这样:
//[ChildActionOnly]
[ActionName("_Dodatki")]
public ActionResult Dodatki()
{
using (var context = new DluzynaContext())
{
var lista = context.Indeks.Select(it => it.Dzien).ToList();
return PartialView("_Dodatki", lista);
}
}
在这里lista被传递到我的部分视图 _Dodatki ,并且它填充了上下文属性 Indeks 和模型属性 Dzien 。
谢谢你们的帮助@Wndrr,@ GTown-Coder。