【发布时间】:2019-01-12 12:45:35
【问题描述】:
我正在 MVC 网络核心应用程序中创建一个网页,用户可以在其中向他们的房间添加家具。该页面使用 foreach 循环来制作包含视图组件的引导导航药丸。视图组件按家具类型(Furniture 模型中的枚举)过滤,以返回该指定类型的家具的简单列表
<ul class="nav nav-pills">
@foreach (Furniture.FurnitureType FurType in (Namjestaj.FurnitureType [])Enum.GetValues(typeof(Furniture.FurnitureType )))
{
<li><a data-toggle="pill" href="#@(FurType )">@(FurType )</a></li>
}
</ul>
@foreach (Furniture.FurnitureType FurType in (Namjestaj.FurnitureType [])Enum.GetValues(typeof(Furniture.FurnitureType )))
{
<div id="@(FurnitureType )" class="tab-pane fade">
<p>@(FurnitureType )</p>
@await Component.InvokeAsync("RoomFurniture", new { id = Model.Id, FurnitureType= FurType , free= true })
</div>
}
//查看组件代码
public IViewComponentResult Invoke(int id, Furniture.FurnitureType typ, bool free)
{
List<Furniture> furniture= db.Furniture.Where(x => x.FurnitureType == typ).ToList();
return View("RoomFurniture", furniture);
}
视图组件返回结果,但它总是返回相同的结果。在所有家具类型(“沙发”、“床”、“桌子”...)中,它只返回每个导航药丸中的床。我什至尝试硬编码一种不同的类型,但只返回床位。在调试器内部,foreach 循环正确迭代,在 razor 页面内部,Viewcoponent 获得正确的枚举值,但 invokeAsync 函数仍保持设置在“床”上。
【问题讨论】:
标签: c# model-view-controller asp.net-core asp.net-core-viewcomponent