Я получаю эту ошибку (system.web.mvc.webviewpage<tmodel>.model.get возвращает null.)
Home Controller public ActionResult Index() { MenuModel ObjMenuModel = new MenuModel(); ObjMenuModel.MainMenuModel = new List<MainMenu>(); ObjMenuModel.MainMenuModel = GetMainMenu(); ObjMenuModel.SubMenuModel = new List<SubMenu>(); ObjMenuModel.SubMenuModel = GetSubMenu(); return View(ObjMenuModel); } public List<MainMenu> GetMainMenu() { List<MainMenu> ObjMainMenu = new List<MainMenu>(); ObjMainMenu.Add(new MainMenu { ID = 1, MainMenuItem = "Home", MainMenuURL = "#" }); ObjMainMenu.Add(new MainMenu { ID = 2, MainMenuItem = "System Setup", MainMenuURL = "#" }); return ObjMainMenu; } public List<SubMenu> GetSubMenu() { List<SubMenu> ObjSubMenu = new List<SubMenu>(); ObjSubMenu.Add(new SubMenu { MainMenuID = 2, SubMenuItem = "Customer Information", SubMenuURL= "Employer" }); ObjSubMenu.Add(new SubMenu { MainMenuID = 2, SubMenuItem = "Chart Of Accounts", SubMenuURL = "CompanyProfile" }); return ObjSubMenu; } My Model namespace Ron_Financial_Management_System.Models { public class MenuModel { public List<MainMenu> MainMenuModel { get; set; } public List<SubMenu> SubMenuModel { get; set; } } public class MainMenu { public int ID; public string MainMenuItem; public string MainMenuURL; } public class SubMenu { public int MainMenuID; public string SubMenuItem; public string SubMenuURL; } }
Мой вид макета
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>@ViewBag.Title</title> <link href="~/Content/Site.css" rel="stylesheet" type="text/css" /> <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script> <link href="~/Content/bootstrap.min.css" rel="stylesheet" /> <link rel="shortcut icon" type="image/x-icon" href="~/Ron.ico" /> <script src="~/Scripts/modernizr-2.6.2.js"></script> <link href="~/Content/style.css" rel="stylesheet" type="text/css" /> <script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script> <script src="~/Scripts/jquery-1.12.4.min.js"></script> <link href="~/Content/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css" /> @*<script src="@url.Content("~/Scripts/jquery-1.8.3.js")" type="text/javascript"></script> <script src="@url.Content("~/Scripts/jquery-ui.min.js")" type="text/javascript"></script>*@ <script src="../../Scripts/script.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function () { $("#accordian h3").click(function () { $("#accordian ul ul").slideUp(); if (!$(this).next().is(":visible")) { $(this).next().slideDown(); } }); }); </script> </head> <body> @using System.Web.Optimization @model Ron_Financial_Management_System.Models.MenuModel @using (Html.BeginForm("_Layout", "Shared")) { <div id="wrapper"> <div id="menuTop"> <table> <tr> <td align="center"><a href="@Url.Action("Logout","Login")">Logged In As:</a> </td> <td align="center"><a href="@Url.Action("Logout","Login")">Last Login:</a></td> <td align="center"><a href="@Url.Action("Logout","Login")">Logout</a> </td> </tr> </table> </div> <div id="menuLogo"> Logo </div> <div id="banner"> <img id="img_logo" alt="Logo" src="@Url.Content("~/Content/Images/RFMS_Brand.png")" /> </div> <div id="columnLeft"> <div id="accordian"> <ul> <li> @{ if(Model.MainMenuModel==null){ <span>no items found</span> } else { foreach (var MenuItem in Model.MainMenuModel) { var SubMenuItem = Model.SubMenuModel.Where(m => m.MainMenuID == MenuItem.ID); <h3><a href="@MenuItem.MainMenuURL"> @MenuItem.MainMenuItem </a></h3> if (SubMenuItem.Count() > 0) { <ul> @foreach (var SubItem in SubMenuItem) { <li><a href='@SubItem.SubMenuURL'>@SubItem.SubMenuItem</a></li> } </ul> } } } } </ul> </div> <br /> </div> <div id="content"> @RenderBody()</div> <div id="menuBottom" aling="center"> © Copyright @DateTime.Now.Year Ron Technologies Ltd </div> </div> } @Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/bootstrap") @RenderSection("scripts", required: false) </body> </html>
Мой взгляд работодателем
@model Ron_Financial_Management_System.Employer @*@model Ron_Financial_Management_System.Models.MenuModel*@ @{ Layout = "~/Views/Shared/_Layout.cshtml"; } <h4>Employer</h4>
Что я уже пробовал:
Can someone kindly guide me on what could be the problem?
когда я нажимаю в выпадающем меню examle ссылку работодателя, я получаю вышеуказанную ошибку, я перепробовал все средства без успеха любезно помогите
Примечание: Я получаю эту строку в своем виде макета (
foreach (var MenuItem in Model.MainMenuModel))
F-ES Sitecore
Вы отправляете форму в частичное представление, которое не будет работать, которое направляет сайт непосредственно на эту страницу, но это не действительная страница, она должна существовать внутри чего-то другого. Вместо этого вам нужно отправить beginform в действие Index или что-то еще подходящее.