我正在努力将 Web 应用程序从 .NET Core 2.2 更新到 .NET 5。大多数事情都运行良好,但我陷入了部分视图。
该网站使用大量 Ajax 请求,大多数返回带有一些 HTML 的小部分视图。 partial中的所有变量信息都是通过视图数据设置的。
更新到 .NET 5 后,视图数据进入部分视图时为空。
例如,我返回部分“_mailbox”。在控制器中,您可以看到视图数据中有一些内容:
但是当我进入部分视图时,您可以看到它是空白的!在2.2中它被通过了:
基本功能:
public ActionResult OnGetGetMailbox(int id)
{
ViewData["Fullname"] = "Christopher"
return Partial("_mailbox")
}
您知道可能出了什么问题吗?我基本上只是按照 Microsoft 概述的步骤进行操作。
如何重现:
我开始了一个全新的项目来测试并遇到了同样的问题-
添加新的 HTML 部分
_test.cshtml
添加新功能
index.cshtml.cs
然后运行网络应用程序时
https://localhost:44332/?Handler=test
但它是空白的。调试和单步执行时,我看到视图数据未传递到视图。
其他信息:
它适用于.NET Core 2.2.105。
根据 Microsoft 文档,与 2.2 相同的语法应该适用于 5.1。然而,正如 Brando 张 指出的那样,您必须使用 .NET 2.1 中过时的语法才能完成这项工作。
如果您阅读 .NET 5 的 Partial 函数的文档,它声称是
Microsoft.AspNetCore.Mvc.RazorPages
命名空间的一部分,但如果您尝试使用该命名空间,您会发现 Partial
不存在。 参见文档
这是一个错误吗?