c# - Razor Pages:如何在部分页面中包含 pagesection?
问题描述
我有一个 Razor Pages 布局页面,其中包含一个导航栏作为部分页面
<html>
...
<body>
...
<partial name="_Nav" />
在我的 _Nav.cshtml 里面
<div class="links">
<a href="#link1">link 1</a>
<a href="#link2">link 2</a>
<!-- custom links that are set by each page go here-->
</div>
网站中的每个页面都使用此布局。我希望能够包含与网站中每个页面相关的“额外”链接。
我试过这样做@RenderSection
,但似乎只允许Layout
页面中的部分。这是否意味着我需要取消我的_Nav
部分代码并将所有代码集中到一个文件中?或者有没有办法保持有组织的代码结构并仍然传递一些代码?使用 jinja2 代码块,这没问题,所以我希望 Razor Pages 中也有一个不错的方法!
另外,我真的不想将完整的 html 字符串从 c# 类传递给 html,我已经在链接中传递了我需要的任何变量。
谢谢你的帮助!
解决方案
您不必将 html 存储在ViewDataDictionary
.
在每个需要添加额外链接的视图上,存储一个List<string>
字符串作为 url,如下所示:
看法:
@{
ViewData["Links"] = new List<string>(){ "https://www.google.com", "https://www.facebook.com" };
}
然后在您的布局视图中:
<partial name="_Nav" view-data="@ViewData" />
现在在您的部分视图中:
//Default Links
@if (ViewData["Links"] != null)
{
//We have extra links
List<string> links = (List<string>)ViewData["Links"];
foreach (string link in links)
{
<a href="@link">link1</a>
}
}
推荐阅读
- google-apps-script - 谷歌工作表脚本只勾选最后匹配的行
- python - 有没有办法在 python 的 opencv 中使用 hdmi 输入?
- python - 'conda create -n abc python=3.7' 进程卡在我的 Anaconda3 上
- python - 在python中每月重新采样数据
- python - 如何修复 TypeError __str__ 返回的非字符串
- angular - 急切加载的模块的组件未显示在延迟加载的模块中
- angular - PWA 离线谷歌分析
- python - 事件驱动环境中的 Python Turtle `While True`
- flutter - 如何自动对功能和自定义小部件进行分组?
- ios - UITableview 单元格阴影未出现在 ios 13 中