MVCのレイアウトページでメニューを動的にロードしたい。Asp.net MVC5のデータベースでLayoutPageのメニューをデータベースから動的にロードしますか?
私は、メニューとメニュー用のモデルであるViewcodeを作成しました。今私が望むのは、メニューを動的にロードすることです。データベースからデータを取得し、レイアウトページでロードする必要があります。
マイモデル
メニュー・モデル
public Menu()
{
MenuItems = new List<MenuItem>();
}
public int Id { get; set; }
public string Name { get; set; }
public List<MenuItem> MenuItems { get; set; }
私のモデルのMenuItem
public class MenuItem
{
public int Id { get; set; }
public int UserName { get; set; }
public string Name { get; set; }
public string ActionName { get; set; }
public string ControllerName { get; set; }
public string Url { get; set; }
public Menu ParentMenu { get; set; }
}
私のコントローラコード
public ActionResult Index()
{
var menu = new Menu();
menu.Name = "Main Menu";
var query = db.ApplicationNames.Select(e => new {
UID= e.UID,
e.ApplicationName1
}).FirstOrDefault();
var uid = query.UID.ToString();
var name = query.ApplicationName1;
var items = new List<MenuItem>() { new MenuItem { Name = "FirstMenu", ControllerName = uid, ActionName = name }};
menu.MenuItems = items;
return PartialView("_MenuLayout",menu);
}
@model List<DynamicMenuLoading.Models.Menu>
<ul>
<li>
<a href="#">
<span>@Model.Name</span>
</a>
<ul>
@foreach (var item in Model.MenuItems)
{
<li><a href="@Url.Action(@item.ActionName , @item.ControllerName)"><i class="fa fa-circle-o"></i>@item.Name</a></li>
}
</ul>
</li>
</ul>
マイレイアウトページ
<nav id="mainNavigation">
@Html.Partial("_MenuLayout")
</nav>
私のテーブル名のApplicationName
_MenuLayout私の部分図をUID ApplicationName
1 EMPLOYEE
2 CUSTOMER
3 CITY
4 STATE
5 COUNTRY
私はこのエラーを取得しています私のプロジェクトを実行しようとしていますが:
e:\Task Tried\DynamicMenuLoading\DynamicMenuLoading\Views\Shared_MenuLayout.cshtml(8): error CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments
誰も私が何をしたかの間違いを教えてもらえますか?誰もが私の問題を理解し、私の問題を解決することができますか?
nineberry私はこのすべての別個のコントローラーだけをしました –
@snehasusan ???あなたの質問のコードは何か異なることを言います – NineBerry
あなたの答えを詳しく説明できますか? –