如何将数据绑定到asp mvc 4中的布局页面

时间:2016-07-06 08:19:35

标签: asp.net-mvc-4

如何将控制器代码写入共享布局页面,

我想从数据库到布局获取菜单,

能够在普通视图页面中获取菜单,

这是我的布局页面

<pre lang="html"> <div style="width:1230px">
                    <script type="text/ng-template" id="treeMenu">
                        <a href="{{menu.Description}}">{{menu.Name}}</a>

                        <ul ng-if="(SiteMenu | filter:{ParentID : menu.Id}).length > 0">

                            <li ng-repeat="menu in SiteMenu | filter:{ParentID : menu.Id} : true" ng-include="'treeMenu'"></li>
                        </ul>
                    </script>
                    <ul class="main-navigation">
                        <li ng-repeat="menu in SiteMenu | filter:{ParentID : 0} : true" ng-include="'treeMenu'"></li>
                    </ul>

1 个答案:

答案 0 :(得分:1)

您应该在Partial中将其隔离,并在布局页面中使用RenderAction

简而言之:

  1. 在某个控制器中创建动作&#34;让我们说CommonController&#34;例如,称为SiteMenu。
  2. 放入将从数据库中提取数据的代码,并将其映射到合适的ViewModel以表示您的菜单项。
  3. 操作应该返回PartialView而不是View。
  4. 无论您的主要布局如何,请考虑此操作。因此,只需为它创建一个特殊视图,并将Html的逻辑放在该视图中。
  5. 在主要布局的合适位置,只需使用@Html.RenderAction("SiteMenu ","Common")
  6. 即可

    了解有关RenderPartial vs RenderAction vs Partial vs Action in MVC

    的更多信息