2011-08-01 29 views
0

私が見つけることができるすべてのチュートリアルとサンプルを読みましたが、何が欠けているのか分かりません。私_layoutで.NET MVCカスタムヘルパーがレイアウトで適切にレンダリングされない

マイヘルパー...

namespace MVCShop.Helpers 
{ 
    public class RenderNav 
    { 
     public static MvcHtmlString GetCategoryNav(string store) 
     { 
      MVCShopEntities db = new MVCShopEntities(); 

      IEnumerable<Category> categories = db.Categories.Where(c => c.Store.Name == store); 
      StringBuilder sb = new StringBuilder(); 

      foreach (Category cat in categories) 
      { 
       sb.AppendFormat("<ul id='menu'><li>{0}</li></ul>", cat.Name); 
      } 

      return new MvcHtmlString(sb.ToString()); 
     } 
    } 
} 

、私はコードを強化しました...

<nav> 
      @{ RenderNav.GetCategoryNav(ViewContext.RouteData.Values["storeName"].ToString()); } 
    </nav> 

をこの行を追加しました。文字列が正しく作成され、関数によって返されます。すべてがビルドされ、実行時エラーはありません。メニューhtmlは単にページに表示されません。私は困惑している。

答えて

1

あなたはを書いてではありません。ちょうどとなります。方法はです。
値が生成され、正常にが無視されます

(コードブロックを使用して出力任意のコンテンツをないしている)ブラケットとセミコロンを削除します。

<nav> 
    @RenderNav.GetCategoryNav(ViewContext.RouteData.Values["storeName"].ToString()) 
</nav> 

これは出力方法結果にカミソリを伝えると、あなたのナビゲーションが表示されます。

+0

ああ、もちろん。それはありがとうございました! – atfergs

+0

ええ、これは実際に私がレイザーを学び始めたときに30分くらい固まってしまいました。私は誰もがこれを遅かれ早かれ打つと思います。 –

関連する問題