1 // Copyright (c) Microsoft Corporation. All rights reserved. See License.txt in the project root for license information.
2 
3 using System.Globalization;
4 using System.Web.Mvc.Properties;
5 using System.Web.UI;
6 
7 namespace System.Web.Mvc
8 {
9     [FileLevelControlBuilder(typeof(ViewMasterPageControlBuilder))]
10     public class ViewMasterPage : MasterPage
11     {
12         public AjaxHelper<object> Ajax
13         {
14             get { return ViewPage.Ajax; }
15         }
16 
17         public HtmlHelper<object> Html
18         {
19             get { return ViewPage.Html; }
20         }
21 
22         public object Model
23         {
24             get { return ViewData.Model; }
25         }
26 
27         public TempDataDictionary TempData
28         {
29             get { return ViewPage.TempData; }
30         }
31 
32         public UrlHelper Url
33         {
34             get { return ViewPage.Url; }
35         }
36 
37         public dynamic ViewBag
38         {
39             get { return ViewPage.ViewBag; }
40         }
41 
42         public ViewContext ViewContext
43         {
44             get { return ViewPage.ViewContext; }
45         }
46 
47         public ViewDataDictionary ViewData
48         {
49             get { return ViewPage.ViewData; }
50         }
51 
52         internal ViewPage ViewPage
53         {
54             get
55             {
56                 ViewPage viewPage = Page as ViewPage;
57                 if (viewPage == null)
58                 {
59                     throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, MvcResources.ViewMasterPage_RequiresViewPage));
60                 }
61                 return viewPage;
62             }
63         }
64 
65         public HtmlTextWriter Writer
66         {
67             get { return ViewPage.Writer; }
68         }
69     }
70 }
71