asp.net-mvc – 根据活动页面有条件地显示部分视图
|
我正在尝试熟悉ASP.net MVC5并移植现有网站. 我已经定义了一个默认的共享布局视图,其中包含标题,导航,页脚等内容的几个部分… 我的主页与使用此布局的其他页面之间的唯一区别是主页有一个滑块和一些其他独特的功能.除此之外,布局是相同的. 因此,我不认为它保证创建两个不同的视图并设置主页的布局以使用一个视图,并且当大多数模板相同时,所有其他页面使用另一个页面. 我创建了一个名为_HomeContentPartial的部分包含主页的唯一内容. 只有当我的家(我的家庭控制器上的索引操作)是当前页面时,Razor有条件地包含此部分的最佳方式是什么? 解决方法只需添加一个ViewBag.IsHome = true;到家庭控制器,索引动作方法控制器.然后将其添加到_layout.chtml视图: @if ((bool?)ViewBag.IsHome){
Html.RenderPartial( "_HomeContentPartial .cshtml" );
}
另外一个选项: 由于您可以在布局中指定任意数量的渲染区域,只需将可选部分放在占位符中,并使用@RenderSection并将所需标志设置为false,这样它就不会介意它是否缺失. 例如在你的_layout.cshtml中 @RenderSection(“extraheader”,false) 然后在视图中有可选部件插入该位置: @section extraHeader{
<ul>
<li>Some new option 1</li>
<li>Some new option 2</li>
</ul>
}
您使用哪种方法取决于您希望如何重用组件.您可以愉快地在@section中呈现部分视图,以允许在多个视图中重用: 例如 @section extraHeader{
@Html.Partial("somepartialview")
}
甚至使用另一个控制器动作(更好的封装,所以我的偏好): 例如 @section extraHeader{
@Html.Action("someAction","someController",new {id = someValue})
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 在DropDownList ASP.NET MVC中获取所选项目
- asp.net-mvc – 如何使用wmd-editor控件检索markdown和html
- asp.net-mvc – 如何从ASP.Net MVC列表页面使用jQuery UI模
- asp.net-mvc-5 – 什么是XsrfKey用于,我应该将XsrfId设置为
- 在经典ASP中对集合进行排序
- asp.net – 问题映射HttpHandler – HTTP错误404未找到
- 将ASP.NET应用程序连接到QuickBooks Online Edition
- ASP.NET Web应用程序的安装
- asp.net – Azure服务架构与Docker一样吗?
- asp.net – 这是什么错误?
