动态对象Page可以在继承自System.Web.WebPages.WebPageBase的抽象类中找到。WebViewPage
ViewBag可以在 中找到动态对象System.Web.Mvc.WebViewPage。
两者都可以从视图向上传播到它的布局页面。
我可以看到的另一个区别是ViewBag可以在控制器中使用,而Page只能在视图中使用。还有其他我应该知道的差异吗?
动态对象Page可以在继承自System.Web.WebPages.WebPageBase的抽象类中找到。WebViewPage
ViewBag可以在 中找到动态对象System.Web.Mvc.WebViewPage。
两者都可以从视图向上传播到它的布局页面。
我可以看到的另一个区别是ViewBag可以在控制器中使用,而Page只能在视图中使用。还有其他我应该知道的差异吗?
Page并且ViewBag是动态的,它们是字典的包装器。
PagePageData是字典的动态包装器。是字典ViewBag的动态包装器。ViewData
当谈到差异时,
ViewBag用于在控制器和视图之间共享数据,甚至我们可以用来在主视图和部分视图之间共享数据。因此 ViewBag 可以从控制器和视图中访问。
Page有点不同,它不能从控制器访问,它用于在主页面和部分页面之间传递数据。
请参阅此处的示例,Page用于在主视图和部分视图之间传递数据。
主文件.cshtml
@{
Page.Name = "Mark;
}
@RenderPage("DisplayName.cshtml"); // partial view
显示名称.cshtml
<p>
Name: @Page.Name
</p>
并不是说我使用RenderPage来渲染局部视图,局部视图也位于主视图所在的同一目录中。