我正在尝试将ASP.NET MVC项目转换为ASP.NET Core MVC。我做了大部分的工作,但陷入了一个奇怪的问题。
我的项目有一个视图User.cshtml
和一个布局页面UserLayout.cshtml
,基于一个API调用,我在ASP.NETMVC中通过return View("User", "UserLayout");
返回视图及其母版页。
该方法需要一个视图名称和一个主名称。这个重载在ASP.NET Core MVC中不再存在,所以我在User.cshtml
页面的顶部设置了如下布局:
@{ Layout="~/Views/Shared/UserLayout.cshtml"; }
并从我的控制器返回视图名称。
现在我的布局页面包含了剑道标签条,在它的内容中,我渲染了在UserLayout.cshmtl
@section HomeTab {}
中定义的像@RenderSection("HomeTab", true)
这样的部分。这在ASP.NET MVC项目中完全正常,但是当我运行ASP.NET Core MVC项目时,我得到了这个异常:
InvalidOperationException:以下部分已定义,但尚未由位于“/Views/Shared/AgentLayout. cshtml”的页面呈现:'HomeTab'。要忽略未呈现的节,请调用IgnoreSection(“sectionName”)。
我已经尝试删除该部分,将required属性更改为false,但错误仍然存在。似乎我不需要将视图从.NET转换为.NET Core,但这件小事让我卡住了。
1条答案
按热度按时间b1zrtrql1#
我找到了一个解决这个问题的方法,把它贴在这里,给任何遇到同样问题的人。
我在我的剑道标签条@{}上面创建了一个剃刀代码块,在代码块关闭后,我添加了一个.Render()函数,到目前为止,我的代码按预期运行。