我试图在部分渲染中生成元标记 . 问题是我无法渲染一个部分 . 我已尝试过在网上提供的各种建议 . 以下是场景 .
_Layout.cshtml
@RenderBody()
- 除了某些部分渲染外,渲染身体
MainView.cshtml
@{
Layout = "/Views/News/Shared/_Layout.cshtml";
}
- 具有部分渲染效果
Display.cshtml - 内部有一些部分渲染和HTML - 还包含我需要在_Layout中提供的元数据代码
以下是我的尝试:场景1:Display.cshtml
{
@section main
{...}
}
MainView.cshtml
{
@section main
{
@RenderSection("main", false)
}
}
_Layout.cshtml
{
@RenderSection("main", false)
}
结果:MainView抛出异常...无法直接请求asp.net mvc,因为它调用“RenderSection”方法 .
场景2: - 尝试使用ViewBag在视图之间交换数据 .
@ViewBag.PropertyName = "test value";
结果:@ ViewBag.PropertyName中没有值
场景3 :(这令人沮丧) - _Layout.cshtml
@section main
{
<div>this is it!!</div>
}
@RenderSection(“main”,false);
结果:错误.....未定义“主”部分 .
在开始讨论这个问题之前,我对视图/部分视图(非常通用)没有很好的理解 . 在这方面,我进一步了解了@RenderPage()@ RenderSection()和ofcourse @ Html.Partial()
到目前为止,我所看到的任何基本功能对我都没有用 . 有什么我错过了吗?或者是否有我误解的观点之间的父/子关系的任何细节?
任何指向正确方向的指针都会有很大帮助 . :)
干杯!!
2 回答
在示例中,您似乎在所有地方都有不需要的大括号 . 您在使用布局时也使用术语PartialView,这意味着它们是视图,而不是部分视图 . PartialView没有布局/母版页
要向主页面/布局添加新部分,可以由任何视图提供,您只需要
在_Layout.cshtml母版页中:
并在MainView.cshtml视图中添加主要部分:
对于上面的问题,我在我的情况下有一个解决方法,但它没有达到目的 . 无论如何,我将分享我最终能够如何进行RenderSection .
这使得标签很好 .
现在,我无法共享有助于构建驻留在Display.cshtml中的标记的变量 .
感谢阅读:)