这是我如何尝试获得包含课程的视图。我得到它的方式是写:
@Html.Partial("View/ViewBar_Info/Menu")
如果我正在做一个普通的MVC视图,我可以这样做。但那是因为我必须得到通过数据库控制的菜单。因此,我试着在这里做到这一点。
如何调用该视图?
错误文字:
在编译处理此请求所需的资源期间发生错误。请查看以下特定错误详细信息并适当修改源代码。
生成的代码缺少一个或多个编译引用。确保 您的项目正在引用' Microsoft.NET.Sdk.Web'和 ' PreserveCompilationContext' property未设置为false。
更新EIDT:
我是从_Layout.cshtml
制作的@Html.Partial("View/ViewBar_Info/Menu.cshtml")
在Menu.cshtml中:
@page
@model NewWebsite_SITE_2018.Pages.View.ViewBar_Info.MenuModel
@foreach (var item in Model.GetListMenu)
{
<a>@item.Name</a>
}
现在出错了:
InvalidOperationException:传递给ViewDataDictionary的模型项的类型为&#39; NewWebsite_SITE_2018.Pages.IndexModel&#39;,但此ViewDataDictionary实例需要类型为&#39; NewWebsite_SITE_2018.Pages.View.ViewBar_Info的模型项。 MenuModel&#39;
我尝试做的是在我的布局中,所以我打电话给我的菜单,所以来单页。
答案 0 :(得分:0)
第一个问题出现在2.0.3中修复的Razor预编译问题中 https://github.com/dotnet/core-setup/issues/2981
第二
当你打电话给你的部分时,你应该发送正确的模型,如果你不发送剃须刀尝试发送当前的模型视图
发送现有模型
@Html.Partial("View/ViewBar_Info/Menu.cshtml", yourMenuModel)
或创建新
@Html.Partial("View/ViewBar_Info/Menu.cshtml", new NewWebsite_SITE_2018.Pages.View.ViewBar_Info.MenuModel())
或修改非必需模型的视图
@{
var menuModel = new NewWebsite_SITE_2018.Pages.View.ViewBar_Info.MenuModel();
}
@foreach (var item in menuModel.GetListMenu)
{
<a>@item.Name</a>
}