【发布时间】:2019-03-13 00:27:46
【问题描述】:
如何在 ASP.NET Core RazorPages 中的 appsettings.json 中在 Razor 视图中显示菜单数组,这几天我一直坚持。任何人都可以给我一个解决方案吗?
public void OnGet()
{
ViewData["Test"] = Test().AsEnumerable();
}
public class AppMenu
{
public string MenuName { get; set; } // Module Name
public List<AppMenu> MenuList { get; set; } = new List<AppMenu>();
}
public string Test()
{
var apps = new List<AppMenu>();
List<string[]> listMenus = new List<string[]>();
var hpMenu = new[] { "xxx", "xxx", "xxx", "xxx", "xxx" };
var vtMenu = new[] { "yyy", "yyy", "yyy", "yyy", "yyy" };
var purAgr = new[] { "zzz", "zzz", "zzz" };
var mainManu = new[] { "aaa", "aaa"};
listMenus.Add(hpMenu);
listMenus.Add(vtMenu);
// listMenus.Add(hpMenu)
foreach (var main in mainManu)
{
AppMenu appmainmenu = new AppMenu();
appmainmenu.MenuName = main;
apps.Add(appmainmenu);
}
for (var i = 0; i <= listMenus.Count - 1; i++)
{
List<AppMenu> lsmenu = new List<AppMenu>();
foreach (var menustr in listMenus[i])
{
AppMenu appmenu = new AppMenu();
appmenu.MenuName = menustr;
if (menustr == "Purchase Agreement")
{
foreach (var it in purAgr)
{
AppMenu purr = new AppMenu();
purr.MenuName = it;
appmenu.MenuList.Add(purr);
}
}
lsmenu.Add(appmenu);
}
apps[i].MenuList = lsmenu;
}
return JsonConvert.SerializeObject(apps);
}
任何人都可以帮我显示菜单,就像这样。 Index.cshtml(例如)
@foreach (var test in ViewData["Test"])
{
<p>@test</p>
}
【问题讨论】:
-
如何在View中使用Test()方法。
标签: c# json razor asp.net-core-mvc razor-pages