asp.net-mvc – Viewmodel和动态菜单最佳实践 – ASP.NET MVC
发布时间:2020-12-16 07:22:31 所属栏目:asp.Net 来源:网络整理
导读:我正在asp.net MVC中创建一个新网站,其动态菜单会根据用户的不同而变化.但那还不是全部.我根据用户使用2种不同的布局(Razor布局),2种不同的布局有不同的菜单.所以我有2个不同的布局和2个不同的动态菜单. 我想对2个布局使用相同的视图,每个视图有一个viewmode
我正在asp.net MVC中创建一个新网站,其动态菜单会根据用户的不同而变化.但那还不是全部.我根据用户使用2种不同的布局(Razor布局),2种不同的布局有不同的菜单.所以我有2个不同的布局和2个不同的动态菜单.
我想对2个布局使用相同的视图,每个视图有一个viewmodel.我使用动作过滤器来确定布局.设计一个“ViewModel”基类是一个好主意,它包含显示两个菜单的数据(即使每次只创建一个菜单),并为我的所有viewmodel创建这个基类的子类(每个视图一个viewmodel). 我想知道这是不是一个好习惯.是否应该使用2个视图(每个布局一个)并使用部分视图作为公共部分? 如果根据布局我希望在视图上显示的内容存在一些差异,我应该使用2个视图而不是一个吗? 任何建议? 解决方法
在我看来,最好的做法是为你的视图创建一个视图模型,其上的属性包含一些确定动态菜单形成方式的对象.例:
public class MyViewModel { public int SomeData { get; set; } // basic Stuff public IDynamicMenuData MenuData { get; set; } } 您可以根据要为该用户呈现的菜单将动态菜单数据的实现分配给视图模型.然后,在您的视图中,您可以调用: @Html.DisplayFor(x => x.MenuData) 您想要动态菜单的位置.然后,您可以为每种类型的IDynamicMenuData实现创建显示模板,并相应地进行渲染.然后,您只需要一个视图,一个视图模型,并且您可以拥有X个动态菜单的实现. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在ASP.NET web.config全球标记中设置日期格式?
- 从ASP.NET Core Web API将多GB文件流式传输到AWS S3
- asp.net-mvc-4 – 带有绝对路径的ASP.NET MVC Bundle
- asp.net listview Container.DataItemIndex
- openxml – 在Asp.net核心1.0中使用Microsoft.Office.Inter
- asp.net-web-api – 在身份验证过滤器中的ChallengeAsync方
- asp.net-mvc – 从n层ASP.Net MVC应用程序的服务层处理或抛
- 新单词 part 15
- asp.net-mvc – 如何使用MSBuild部署一个ASP.NET MVC应用程
- asp.net-mvc – 失败的ASP.NET MVC路由.这是一个错误还是角