如何将网站导航(ascx)添加到MVC _Layout.cshtml页面

时间:2015-08-20 14:44:48

标签: asp.net-mvc

我正在将WebForm asp.net项目迁移到MVC。我将母版页内容复制并粘贴到_Layout.cshtml页面。现在我得到了网站导航的侧面板。在Webform中,如下面的代码所示,将站点导航放在最左侧。我尝试了enf和〜/ Views / SiteNavigation.ascx,但是当我加载页面时没有出现站点导航控件。只是一个空白左侧面板。任何帮助表示赞赏。

            <div class="horizontalTabBarContent" id="mainTabContent">

                <enf:SiteNavigation  ID="ISRNavigation" />
                @*<a href="~/Views/SiteNavigation.ascx">~/Views/SiteNavigation.ascx</a>*@


                <div id="main">
                    <asp:ContentPlaceHolder ID="ISRContent" >
                    </asp:ContentPlaceHolder>
                </div>

            </div>

        </asp:Panel>

3 个答案:

答案 0 :(得分:2)

我帮你找Html.RenderPartial帮手。

在Razor语法中,它将是:

@{ Html.RenderPartial("~/Views/SiteNavigation.ascx"); }

答案 1 :(得分:0)

首先,

MVC中的视图是基本的HTML代码,您可以在其中添加剃刀语法。 “Razor代码”将被解析为服务器端,并将生成html输出以绑定模型,生成有效的URL等。

以下是_Layout.cshtml视图的示例:

<div class="horizontalTabBarContent" id="mainTabContent">
    <div ID="ISRNavigation" />
            @Html.Partial("~/Views/YourPartialNavigationView") //Your navigation bar will be rendered here

            <div id="main">
                @RenderBody() //Body html code will be rendered here
            </div>

        </div>

MVC Projet不支持asp:htmltags语法

答案 2 :(得分:0)

在MVC而不是Web表单用户控件中,你应该使用局部视图,并使用Helder函数,如RenderPartial和Partial,你可以通过你的视图呈现它! 而且不使用PlaceHolder你应该使用Section! 谷歌可以同时使用这两个主题:partialView,Section