【发布时间】:2018-08-20 20:34:56
【问题描述】:
首先我澄清一下,我不是直接使用 MVC,而是使用 Razor Pages。
我正在考虑在 _Layout.cshtml 模板中获取动态数据(数据库)的最佳方法,以便它们在所有页面上都可用:
1)我的第一个选择是创建一个PartialView,我们称之为_Header.cshtml,测试内容如下:
@page
@model _HeaderModel
<div id = "header">
@ Model.HeaderMessage
</ div>
并在 _Layout.cshtml 模板中使用:
@await Html.PartialAsync ("_ Header", new _HeaderModel ())
但是,这会导致错误:
“对象引用未设置为对象的实例。”,我不太明白,因为在方法中传递了一个新的_HeaderModel()实例
不应该工作吗?如果我没有指定 _IndexModel 和 _HeaderModel 之间发生模型错误:ViewDataDictionary 实例需要 _HeaderModel 类型的模型项。
这是一个好方法吗?如果是,为什么不呢?
2)在我看来,我的第二个选择是创建一个 PageModel 基础,其属性将被从 PageModel 基础继承的所有 PagesModel 使用。
欢迎提出任何建议。
【问题讨论】:
标签: c# razor-pages