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 – 为什么Visual Studio崩溃打开ASPX与MVC RC1
- asp.net-mvc – asp.net MVC 1.0和2.0货币模型绑定
- ASP.net会员 – 添加角色
- ASP.NET MVC 3数据注释:动态添加验证
- active-directory – .net5 MVC6应用程序上的Active Direct
- asp.net – 下拉列表和字段验证引起了骚乱
- asp.net-web-api – 如何在StructureMap ServiceActivator中
- asp.net-mvc – 构建视图模型的最佳方法是什么?
- 如何关闭ASP.NET必需的字段验证器“丢失焦点”行为
- ASP.NET MVC2模型验证失败,非美国日期格式
- asp.net-mvc-3 – 在IIS 7.5上托管MVC应用程序时
- asp.net – 如何在web.config中迭代自定义键?
- asp.net – 页面生命周期中的哪个位置是母版页的
- asp.net-mvc – 如何在MVC3 Razor中禁用DropDown
- 垃圾收集 – ASP.NET核心Web应用程序(.NET Frame
- asp.net-mvc – ValidationMessage – 处理同一属
- asp.net – NavigateUrl =“#”变成href =“SubF
- ASP.NET SQL成员资格表
- asp.net-mvc – Paypal REST API – 在付款过程中
- asp.net-mvc-3 – MVC3 razor Webgrid分页和排序