Razor Pages 中 PageModel 与 ViewData 的区别和优势
Differences and benefits of PageModel vs ViewData in Razor Pages
我找不到任何明确的解释。
我试图了解 PageModel
与 ViewData
作为将数据从 C# 代码传递到 cshtml
以在 Razor Pages 中呈现的工具的区别和好处。对性能、可靠性、可测试性有什么影响?
使用ASP.NET 6.
PageModel 是强类型:IntelliSense 和 compile-time 在访问内容页面中的模型属性时进行检查。
ViewData 可用作模型属性的 ViewData 属性。
ViewData 与布局页面(以及内容页面或布局调用的任何部分页面)共享,因此该属性可以轻松地将类型化数据从 PageModel 传递到布局页面或部分页面,而无需将其显式分配给 ViewData词典.
示例:
public class IndexModel : PageModel
{
[ViewData]
public string Message { get; set; }
public void OnGet()
{
Message = "Hello World";
}
}
将 <h2>@ViewData["Message"]</h2>
添加到布局页面。
我找不到任何明确的解释。
我试图了解 PageModel
与 ViewData
作为将数据从 C# 代码传递到 cshtml
以在 Razor Pages 中呈现的工具的区别和好处。对性能、可靠性、可测试性有什么影响?
使用ASP.NET 6.
PageModel 是强类型:IntelliSense 和 compile-time 在访问内容页面中的模型属性时进行检查。
ViewData 可用作模型属性的 ViewData 属性。 ViewData 与布局页面(以及内容页面或布局调用的任何部分页面)共享,因此该属性可以轻松地将类型化数据从 PageModel 传递到布局页面或部分页面,而无需将其显式分配给 ViewData词典.
示例:
public class IndexModel : PageModel
{
[ViewData]
public string Message { get; set; }
public void OnGet()
{
Message = "Hello World";
}
}
将 <h2>@ViewData["Message"]</h2>
添加到布局页面。