dev*_*747 59 asp.net-mvc asp.net-mvc-partialview
我是asp.net MVC的新手,所以请耐心等待.我需要构建一个在多个视图中重复的菜单.什么会更好地服务于目的Html.Action或Html.Partial.
Tom*_*mmy 117
以下是我考虑使用Html.Action或Html.Partial的指南
Html.Partial
Html.Partial在渲染静态内容时使用,或者Html.Action
Html.Action时,你实际上需要从服务器获取额外的数据来填充局部视图基本上,如果是静态的,请使用Html.Partial().如果是动态的,模型独立数据,请使用Html.Action().可能有更多场景,但这会让你很好地了解去哪里/怎么去. Html.RenderPartial()并且Html.RenderAction()对于上面类似命名的函数是可互换的.
Jes*_*lam 67
Html.Partial:渲染局部视图而不首先触及控制器操作.请参阅:部分视图
Html.Action调用一个Controller Action,它可能会返回一个视图/部分视图(或者可能不会,它可能会抛出一个HttpNotFound或返回Json,或其他东西).
您的菜单是需要视图模型还是静态?
如果它是静态菜单,Html.Partial将满足您的需求.将静态菜单内容放在局部视图中,并调用Html.Partial要呈现的位置.
如果正在生成菜单关闭视图模型,你可以使用两种 Html.Partial或Html.Action:
使用Html.Partial链接视图模型:
public class MenuViewModel {
// menu data goes here
}
public class GeneralViewModel : MenuViewModel {
// general view info goes here
}
public ActionResult Index() {
return View(new GeneralViewModel());
}
// View Code
@model GeneralViewModel
<div>@Html.Partial("_partialName", model)</div>
Run Code Online (Sandbox Code Playgroud)
在这里,我们将完整的视图模型传递给视图,视图调用Partial并将其模型移交给局部视图.
**使用Html.Action分离模型:**
public ActionResult Index() {
return View(new GeneralViewModel());
}
public ActionResult MenuView() {
return PartialView(new MenuViewModel());
}
// View Code
@model GeneralViewModel
<div>@Html.Action("MenuView")</div>
Run Code Online (Sandbox Code Playgroud)
这里视图调用控制器动作MenuView,它创建一个新的视图模型并将其传递给partial.
| 归档时间: |
|
| 查看次数: |
58435 次 |
| 最近记录: |