【发布时间】:2019-03-09 01:36:36
【问题描述】:
已编辑
我有一个 ASP.NET Core 2.1 网站,我已经为它的所有标识项搭建了脚手架。脚手架进程在这个位置创建了一个布局文件:
/Areas/Identity/Pages/Account/Manage/_Layout.cshtml
由于我想在全局范围内使用布局,我已将布局文件(使用剪切粘贴)移动到这个新位置:
/Views/Shared/AdminLayout/_Layout.cshtml
然后在第一个位置创建一个_ViewStart.cshtml 文件以使用第二个位置的布局。 _ViewStart文件的内容是这样的:
@{
Layout = "/Views/Shared/AdminLayout/_Layout.cshtml";
ViewData["ThisOneWorks"] = "some value";
}
现在的问题是,我从脚手架页面设置的ViewDatas(例如SetPassword.cshtml、ExtenalLogins.cshtml、...)在布局文件中不起作用。例如ViewData["Title"] 始终为空,但我在_ViewStart 中设置的ViewData 可以正常工作。
问题是,当我使用共享视图文件夹中的布局时,如何使用脚手架身份文件中的ViewData?
编辑 1:
看来问题出在这一行:
ViewData["ThisOneWorks"] = "some value";
当我从_ViewStart 中删除它时,所有其他ViewDatas 都可以正常工作,但是为什么呢?
【问题讨论】:
-
代码是否在公共仓库中?
-
您是否尝试过使用不带感叹号 (!) 的索引字符串,例如ViewData[“标题”]
-
@MohsinMehmood 是的,这只是 SO 问题中的一个示例。我在代码中使用了另一个索引字符串,它只有英文字符。
标签: c# asp.net asp.net-mvc asp.net-core razor-pages