2016-12-23 10 views
3

私はNopCommerceで作業していましたが、文字列キーを受け取り、その値をデータベースから取得するHTMLヘルパー@T("")があります。nopcomerceに匹敵するhtmlヘルパーを作成する@T()helper

これを私のプロジェクトに実装したいと思います。私はたくさんのグーグルで探せましたが、このようなヘルパーメソッドをどのように作成したかについては何の助けも見つかりませんでした。

誰かがこのような類似のヘルパーを作成する手助けできますか?

答えて

3

あなた自身のWebViewPageを使用するように剃刀に指示する必要があります。 Viewsの下にあるファイルweb.configの中にこれを宣言します。カスタムWebViewPageは属性のpages要素で指定する必要があります。すべてのcshtml実装はカスタムWebViewPageを継承し、カスタムWebViewPageのプルーフまたは保護されたプロパティとメソッドにアクセスできます。

<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

これは私が探していたものです。ご協力いただきありがとうございます。 –

2

Nop.Web.Frameworkにチェックインしましたか?

TがnopcoomerceのカスタムHTMLヘルパーです、あなたはそれだけのリソース文字列を取得するためにGetResourceサービスを呼び出しています Nop.Web.Framework > ViewEngines > Razor > WebViewPage

でそれが実装だ見つけることができます。

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

+0

私は同じことをしましたが、私は.cshtmlページでそれを呼び出すことができません –

+0

私はすでに上記のすべてを試しました。あなたが.cshtmlページにアクセスするのを助けることができれば、それは非常に役に立ちます。 –

関連する問題