【发布时间】:2018-05-29 02:14:21
【问题描述】:
_ViewStart.cshtml 的内容
@{
Layout = "_Layout";
ViewData["IndexLink"] = Context.Request.Path != "/" ? "/Index" : "";
}
Downloads.cshtml 的内容
@page
@model DownloadsModel
@{
ViewData["Title"] = "Downloads";
}
来自 _Layout.cshtml 的片段
<title>@ViewData["Title"] - ABC Sofware LLC</title>
问题:
<title> 标记正在呈现,但没有视图的标题。
故障排除步骤:
我在_Layout.cshtml 中设置了一个断点,看看是什么
ViewData 包含。它只有一把钥匙,而不是两把。
@ViewData.Keys
Count = 1
[0]: "IndexLink"
如果我从 _ViewStart.cshtml 中删除 ViewData["IndexLink"] 行,则设置 ViewData["Title"]。
@ViewData.Keys
Count = 1
[0]: "Title"
为什么在_ViewStart.html 中设置ViewData 键会破坏视图中的ViewData?
【问题讨论】:
-
我尝试了同样的场景,它似乎工作正常。您是如何创建项目的?
-
@AntonySamyJoseph VS2017 > 新的 ASP.NET Core Web 应用程序 > Web 应用程序。我刚刚尝试了一个全新的测试项目,问题是一样的。
-
我也试过同样的配置..但是asp.net core 2.0..
-
我也用的是2.0版
-
我遇到了同样的问题。似乎在 Core 2.x 中,如果在 _Layout.cshtml 中设置了任何键,则会覆盖 ViewData
标签: razor asp.net-core asp.net-core-2.0