namespace System.Web.Mvc { using System.Diagnostics.CodeAnalysis; public abstract class WebViewPage : WebViewPage { private ViewDataDictionary _viewData; public new AjaxHelper Ajax { get; set; } public new HtmlHelper Html { get; set; } public new TModel Model { get { return ViewData.Model; } } [SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Justification = "This is the mechanism by which the ViewPage gets its ViewDataDictionary object.")] public new ViewDataDictionary ViewData { get { if (_viewData == null) { SetViewData(new ViewDataDictionary()); } return _viewData; } set { SetViewData(value); } } public override void InitHelpers() { base.InitHelpers(); Ajax = new AjaxHelper(ViewContext, this); Html = new HtmlHelper(ViewContext, this); } protected override void SetViewData(ViewDataDictionary viewData) { _viewData = new ViewDataDictionary(viewData); base.SetViewData(_viewData); } } }