2016-12-23 1 views
3

Ich arbeitete an NopCommerce, und es hat einen HTML-Helfer @T(""), die einen String-Schlüssel nimmt und seinen Wert aus der Datenbank holt.Erstellen von HTML-Helper gleichwertig mit Nopcomerce @ T() Helfer

Ich möchte dies in meinem Projekt implementieren. Ich habe viel gegoogelt, aber keine Hilfe gefunden, wie sie eine Hilfsmethode wie diese erstellt haben.

Kann mir jemand helfen, ähnliche Helfer wie diesen zu erstellen?

Antwort

3

Sie müssen dem Rasierer sagen, dass Sie Ihre eigene WebViewPage verwenden sollen. Sie deklarieren dies innerhalb der web.config Datei unter Views Ordner. Ihre benutzerdefinierte WebViewPage muss im pageBaseType Attribut des Elements pages angegeben werden. Alle cshtml-Implementierungen erben Ihre benutzerdefinierte WebViewPage und Sie können die pulic oder geschützten Eigenschaften und die Methode Ihrer benutzerdefinierten WebViewPage zugreifen.

<system.web.webPages.razor> 
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, 
       Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <pages pageBaseType="Custom.MyCustomWebViewPage"> 
</system.web.webPages.razor> 
+0

das ist, was ich gesucht habe. Danke für Ihre Hilfe. –

2

Haben Sie in Nop.Web.Framework eingecheckt?

T Ist benutzerdefinierte HTML-Helfer von nopcoomerce, können Sie finden es Implementierung ist bei Nop.Web.Framework > ViewEngines > Razor > WebViewPage

Es rufen Sie einfach GetResource Service-Ressourcen-String zu erhalten.

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; 
     } 
    } 

Hoffe, das hilft!

+0

Ich habe das gleiche getan, aber ich kann es nicht aufrufen in .cshtml Seite –

+0

Ich habe bereits alle oben genannten Dinge ausprobiert. Wenn Sie mir helfen könnten, auf die .cshtml-Seite zuzugreifen, wäre das sehr hilfreich. –

Verwandte Themen