Бритва ASP.NET mvc 3: метод расширения Html Helper - выполнен, но не печатает HTML - PullRequest
2 голосов
/ 25 сентября 2011

Привет, у меня проблема с моим методом расширения помощника html в движке вида бритвы.Я хочу отобразить SideMenu, если у меня есть узлы для печати:

<!DOCTYPE html>
<html>
<head>
    <title>@ViewBag.Title</title>
    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
    <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
</head>
@using MyNamespace.Helpers
<body>
    <div id = "page" style = "width: 90%; margin: 0 auto" class="pageSection">
        <div id="logo" class="pageSection">aaaa</div>
        <div id = "LeftMenuContainer">
        @{ if (ViewBag.Menu.LeftMenu.Count > 0)
           {
               Html.RenderSideMenu((ICollection<MyNamespace.MenuNode>)(ViewBag.Menu.LeftMenu));
           }
         }
         </div>
        <div id="content" class="pageSection">@RenderBody()</div>
        <div id="footer" class="pageSection"></div>
    </div>
</body>
</html>

и вот мой метод:

public static MvcHtmlString RenderSideMenu(this HtmlHelper helper, ICollection<MenuNode> nodes)
{
    string result = "<h3>Menu</h3>";
    result += "<ul class=\"SideMenu\">";
    foreach (var node in nodes)
        result += MenuRenderEngine.RenderNode(node);
    result += "</ul>";
    return MvcHtmlString.Create(result);
}

Проблема в том, что метод выполняется и возвращает хорошо подготовленную строку, но нене печатать его в поле зрения, поэтому я запутался, что я не так сделал?

1 Ответ

5 голосов
/ 25 сентября 2011

Используйте @, если хотите вывести результат на страницу:

<div id = "LeftMenuContainer">
    @if (ViewBag.Menu.LeftMenu.Count > 0)
    {
        @Html.RenderSideMenu((ICollection<MyNamespace.MenuNode>)(ViewBag.Menu.LeftMenu));
    }
</div>

Также, как примечание, не используйте ViewBag, используйте вместо этого модели представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...