我已经阅读了所有可以找到的演练和示例,但我无法弄清楚缺少什么。
我的助手......
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());
}
}
}
在我的_Layout中,我添加了这一行......
<nav>
@{ RenderNav.GetCategoryNav(ViewContext.RouteData.Values["storeName"].ToString()); }
</nav>
我已经完成了代码。函数正确创建并返回字符串。一切都在构建,并且没有运行时错误。菜单html根本没有显示在页面上。我很难过。
答案 0 :(得分:1)
你不是写这个值,你只是调用方法。
生成该值,然后正常忽略。
删除括号(用于代码块但不输出任何内容)和分号:
<nav>
@RenderNav.GetCategoryNav(ViewContext.RouteData.Values["storeName"].ToString())
</nav>
这会告诉Razor 输出方法结果并显示导航。