wil*_*lvv 10 asp.net-mvc partial-views razor
我有一个网站,在布局中定义了导航栏.导航栏用于站点的多个视图中,并具有一些动态内容,这些内容是从数据库中的几个查询生成的.
我想知道渲染这个菜单的最佳做法是什么(在局部视图中定义).
据我所知,我可以通过两种方式实现,每种方式都有一些优点和缺点:
使用Html.Action:+它完全独立于使用布局的视图 - 它添加了一个额外的请求来呈现页面的一部分 - 我添加了一个Action方法,它返回一个未从Ajax调用的Partial视图.
使用Html.Partial:+一个简单的请求来渲染整个视图 - 每个视图模型必须包含导航栏所需的信息
我非常感谢您对此的见解,因为我在我的网站上有几个这样的场景,我不确定哪一个是最好的.
谢谢!
Dar*_*rov 14
我会使用Html.Action,特别是如果此菜单包含从数据库中提取的一些动态数据.优点是您可以完全独立于主要操作完全分离此提取.此外,可以通过使用[OutputCache]属性对它们进行装饰来缓存子动作的输出.通过这样做,如果数据不经常更改,您可以减少数据库的负载.
它添加了一个额外的请求来呈现页面的一部分
你一定误解了一些事情.客户没有其他要求.一切都在一个请求中提供.还有一个额外的控制器实例化和操作执行,但没有来自客户端的新HTTP请求.就好像在同一个请求中执行了2个控制器操作,并将其结果聚合到发送给客户端的单个HTML页面中.
| 归档时间: |
|
| 查看次数: |
2883 次 |
| 最近记录: |