动态对象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
是动态的,它们是字典的包装器。
Page
PageData
是字典的动态包装器。是字典ViewBag
的动态包装器。ViewData
当谈到差异时,
ViewBag
用于在控制器和视图之间共享数据,甚至我们可以用来在主视图和部分视图之间共享数据。因此 ViewBag 可以从控制器和视图中访问。
Page
有点不同,它不能从控制器访问,它用于在主页面和部分页面之间传递数据。
请参阅此处的示例,Page
用于在主视图和部分视图之间传递数据。
主文件.cshtml
@{
Page.Name = "Mark;
}
@RenderPage("DisplayName.cshtml"); // partial view
显示名称.cshtml
<p>
Name: @Page.Name
</p>
并不是说我使用RenderPage
来渲染局部视图,局部视图也位于主视图所在的同一目录中。