diff options
Diffstat (limited to 'src/System.Web.Mvc/HtmlHelper`1.cs')
-rw-r--r-- | src/System.Web.Mvc/HtmlHelper`1.cs | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/System.Web.Mvc/HtmlHelper`1.cs b/src/System.Web.Mvc/HtmlHelper`1.cs new file mode 100644 index 00000000..77eb44a7 --- /dev/null +++ b/src/System.Web.Mvc/HtmlHelper`1.cs @@ -0,0 +1,39 @@ +using System.Web.Routing; + +namespace System.Web.Mvc +{ + public class HtmlHelper<TModel> : HtmlHelper + { + private DynamicViewDataDictionary _dynamicViewDataDictionary; + private ViewDataDictionary<TModel> _viewData; + + public HtmlHelper(ViewContext viewContext, IViewDataContainer viewDataContainer) + : this(viewContext, viewDataContainer, RouteTable.Routes) + { + } + + public HtmlHelper(ViewContext viewContext, IViewDataContainer viewDataContainer, RouteCollection routeCollection) + : base(viewContext, viewDataContainer, routeCollection) + { + _viewData = new ViewDataDictionary<TModel>(viewDataContainer.ViewData); + } + + public new dynamic ViewBag + { + get + { + if (_dynamicViewDataDictionary == null) + { + _dynamicViewDataDictionary = new DynamicViewDataDictionary(() => ViewData); + } + + return _dynamicViewDataDictionary; + } + } + + public new ViewDataDictionary<TModel> ViewData + { + get { return _viewData; } + } + } +} |