создание динамического меню с помощью ado.net в mvc5 - PullRequest
0 голосов
/ 31 января 2019

Я хочу создать динамическое меню, поэтому сначала я создал модель, и в методе действия мы получаем данные из базы данных и добавляем в список, затем мне нужно заполнить список в меню просмотра, и это моя страница _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 '.

1 Ответ

0 голосов
/ 31 января 2019

ваш бэкэнд в порядке, но неправильный тип в верхней части страницы, так как вы передаете список меню, вы должны получить то же самое на своей странице _layout, просто добавьте строку:

@model List<WebApplication1.Models.Menu>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...