c# - 在 ViewBag 的循环元素中显示
问题描述
我尝试使用循环 ViewBag 中的所有元素在视图中显示
我的 ViewBag(在控制器类中)
ViewBag.MenuItems =
(
from components in _context.Components
where components.ComponentName== "menuPosition"
select new
{
controller = components.valueI,
action = components.valueI,
}
).ToList();
我的观点
@foreach (var item in ViewBag.MenuItems)
{
<p>@item.controller</p>
}
我有错误
RuntimeBinderException: 'object' does not contain a definition for 'controller'
解决方案
在循环时使用 ViewBag 作为 List 它将 viewbag 元素视为 MenuItem 类对象
@foreach (var item in ViewBag.MenuItems as List<MenuItem>)
{
<p>@item.controller</p>
}
添加类
public class MenuItem
{
public string controller {get;set;}
public string action {get;set;}
}
在控制器类中使用
ViewBag.MenuItems =
(
from components in _context.Components
where components.ComponentName== "menuPosition"
select new MenuItem
{
controller = components.valueI,
action = components.valueI,
}
).ToList();
推荐阅读
- javascript - 为什么 function(){}.__proto__ === Function.prototype 和 Function.prototype === function(){}.__proto_ 返回不同的结果
- c++ - 如何在 C++ 中保留颜色深度的同时提取文件图标并另存为 .ico?
- r - 希望在 write.csv() 中插入日期列
- java - 类型参数 t 具有不兼容的上限视图和 webview
- android - 如何取消正在运行的 LiveData 协程块
- apache - 使用 Apache 2.4 重定向 URL
- php - 对等方重置连接 - 同时使用 nginx 和 php-fpm7.2 从上游读取响应标头
- python - 绘制 3D 点的刺激类
- c++ - The use of const char* vs. string literals
- django - 我在 Django 模板下创建一个 html 文件,但在浏览器上显示错误文件不存在