我想创建动态菜单,所以首先我创建了模型,然后在action方法中,我们从数据库中获取数据并添加到列表中 接下来,我需要将列表填充到视图菜单中,这是我正在使用的_layout页面
@Html.ActionLink(item.LinkText,item.Actionname,item.routeValue)
public class Menu
{
public string LinkText { get; set; }
public string Actionname { get; set; }
public string routeValue { get; set; }
public List<Menu> menu { get; set; }
}
public ActionResult Index()
{
List<Menu> mlist = new List<Menu>();
//List<Menu> m = new List<Menu>();
Menu m = new Menu();
using (SqlConnection conn = new SqlConnection(Cstring))
{
conn.Open();
SqlDataReader myReader = null;
SqlCommand myCommand = new SqlCommand("SELECT [TextLinkName],[ActionLinkName],[Routevalue] FROM [MVCTESTING].[dbo].[tbl_MainMenu]", conn);
myReader = myCommand.ExecuteReader();
while (myReader.Read())
{
m.LinkText = (string)myReader["TextLinkName"];
m.Actionname = (string)myReader["ActionLinkName"];
m.routeValue = (string)myReader["Routevalue"];
mlist.Add(m);
}
}
return View(mlist);
// return View();
}
<ul class="dropdown">
@if (Model != null)
{
foreach (var item in Model.menu)
{
@Html.ActionLink(item.LinkText,item.Actionname,item.routeValue)
}
}
</ul>
我面临的错误
错误:
传递到字典中的模型项是类型 'System.Collections.Generic.List`1 [WebApplication1.Models.Menu]',但是 这本字典需要类型的模型项 “ WebApplication1.Models.Menu”。
答案 0 :(得分:0)
您的后端还可以,但是页面顶部的类型是错误的,当您传递菜单列表时,应该在页面_layout上收到相同的内容,只需添加以下行即可:
@model List<WebApplication1.Models.Menu>