MVC 中WebViewPage的運用

MVC在View的最後處理中是將View的文件頁面編譯成一個類,這個類必須繼承自WebViewPage,WebViewPage默認添加對AjaxHelper和HtmlHelper的支持web

public virtual void InitHelpers()
{
Ajax = new AjaxHelper<object>(ViewContext, this);
Html = new HtmlHelper<object>(ViewContext, this);
Url = new UrlHelper(ViewContext.RequestContext);
}

全部當咱們在View頁面中使用@語法時能夠調用Html等方法,觀察Orchard及Nop項目對WebViewPage中用的最多的是多語言化this

        public Localizer T
        {
            get
            {
                if (_localizer == null)
                {
                    //null localizer
                    //_localizer = (format, args) => new LocalizedString((args == null || args.Length == 0) ? format : string.Format(format, args));

                    //default localizer
                    _localizer = (format, args) =>
                                     {
                                         var resFormat = _localizationService.GetResource(format);
                                         if (string.IsNullOrEmpty(resFormat))
                                         {
                                             return new LocalizedString(format);
                                         }
                                         return
                                             new LocalizedString((args == null || args.Length == 0)
                                                                     ? resFormat
                                                                     : string.Format(resFormat, args));
                                     };
                }
                return _localizer;
            }
        }

這倆項目還在自定義的Webviewpage中自定義了一些局部標籤。spa

在Views中的Web.config中修改以下節點值,可將系統默認webviewpage修改爲自定義的orm

   <system.web.webPages.razor>
        <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <pages pageBaseType="Nop.Web.Framework.ViewEngines.Razor.WebViewPage">
            <namespaces>
              <add namespace="System.Web.Mvc" />
              <add namespace="System.Web.Mvc.Ajax" />
              <add namespace="System.Web.Mvc.Html" />
              <add namespace="System.Web.Routing" />
              <add namespace="Nop.Web.Framework" />
              <add namespace="Nop.Web.Framework.UI" />
              <add namespace="Nop.Web.Framework.UI.Captcha" />
            </namespaces>
        </pages>
    </system.web.webPages.razor>
相關文章
相關標籤/搜索