2017-12-12 12 views
0

私のテーマの構造上(おそらく私がオーチャードでかなり新しくなったため)、私は剃刀のビューからウィジェットをレンダリングする必要があります。ウィジェットにはセカンダリメニューがあり、Layout.cshtmlに配置する必要があります。このようなものですが、Model.Navigationの代わりにウィジェット(またはメニュー)を使用しています。剃刀のビューからウィジェットをレンダリングする方法

<div id="MenuH"> 
    @if (Model.Navigation != null) 
     {@Display(Model.Navigation)} 
</div> 

これは可能ですか?

編集私は私のLayout.cshtml "マスターページ" のこのセクションでは、二次メニュー(またはウィジェット)を表示する必要が

<section class="main-content-zone"> 
<div class="container"> 
    <div class="row row-offcanvas"> 
     <<div class="col-lg-sp-2 col-md-3 col-sm-4" id="bt-sidebar"> 
      <div id="MenuV"> 
       <script type="text/javascript">$("#MenuV").html($("#MenuH nav").parent().html());</script> 
      </div> 
     </div> 
     <div class="col-lg-sp-10 col-md-9 col-sm-8 col-xs-12" id="bt-content" role="main"> 
      <div class="col-xs-12" id="bt-content" role="main"> 
       <div class="card no-margin-top show-overflow"> 
        <div class="row"> 

         @if (Model.Content != null){<div class="col-md-12" runat="server" id="Content">@Display(Model.Content)</div>} 
        </div> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 

メニュー/ウィジェットはテーマ(私はテーマを買った)がjsスクリプトを挿入するところに行くべきです。

+0

はい、これはDisplay.Widget()を呼び出すことができます。 Orchardはwidget.cshtmlというテンプレートを探します。 – mberacochea

+0

'ウィジェットをレンダリングする'、あなたはすべてのコードのウィジェットをレンダリングすることを意味しますか、または管理者UIを使って追加したウィジェットを配置したいですか? – devqon

+0

@devqon私は管理UIを通して追加したウィジェット(またはメニュー)を意味します –

答えて

1

まだ存在しない新しいゾーンにウィジェットを追加しようとしているようです。

1ウィジェットをレンダリングする場所をLayout.cshtmlで検索します。そこに新しいゾーン名を定義します。

<div class="col-lg-sp-2 col-md-3 col-sm-4" id="bt-sidebar"> 
    <div class="column-left-zone"> 
     @Zone(Model.ColumnLeft) 
    </div> 
</div> 

注:これはあなたのLayout.cshtmlがlike this定義された機能を持っていることを前提としています。ない場合は、管理UIを通じてそれにウィジェットを追加することができるように、あなただけの@Display(Model.ColumnLeft)

2は、あなたのTheme.txtにゾーンを定義することが可能です。

Zones: Header, Navigation, ..., ColumnLeft 

3今すぐ「ColumnLeft」ゾーンが利用可能ですあなたの管理UIで。あなたのウィジェットをColumnLeftゾーンに追加してください。

関連する問題