asp.net-mvc – 模型本身应该进行一些计算吗?
发布时间:2020-12-16 07:26:12 所属栏目:asp.Net 来源:网络整理
导读:我已经学习了 ASP.NET MVC几个月.我已经了解了视图和控制器以及模型和内容.要设计视图,我们总是需要一个模型. 通常,模型只是一个我们用数据填充并传递给视图的类.我在这里有一个问题:一个模型本身应该做一些计算,还是应该只是愚蠢? 例如,我有一个网站,我按
我已经学习了
ASP.NET MVC几个月.我已经了解了视图和控制器以及模型和内容.要设计视图,我们总是需要一个模型.
通常,模型只是一个我们用数据填充并传递给视图的类.我在这里有一个问题:一个模型本身应该做一些计算,还是应该只是愚蠢? 例如,我有一个网站,我按用户加载图书.我的模型类如下: public class FormViewModel { public User MyUser {get; set;} public Books UserBooks {get; set;} //Constructor here. public FormViewModel(User _user,Books _userBooks) { this.MyUser=_user; this.UserBooks=_userBooks; } } 这个类没有做任何事情 – 它只是一个模板.现在,如果我修改代码如下: public class FormViewModel { public User MyUser {get; set;} public Books UserBooks {get; set;} //Constructor here. public FormViewModel(User _user) { this.MyUser=_user; this.UserBooks=_user.GetBooks(); } } 收集哪些书籍取决于选择了哪个用户.现在,它更容易使用. 我只是想知道根据MVC模式和实践,什么是一个好方法. 解决方法
您可以通过几种方式实现,但我想说最简单的方法是将您尝试访问的用户的引用标识符传递给控制器??操作(如下所示)并让它执行所有数据访问电话.
public void GetUserAndDetails(Guid userId) { ... } 然后,在此控制器操作中,您可以查找此用户的用户详细信息和书籍,在视图模型实例上设置属性并将其返回到要访问的视图. FormViewModel model = new FormViewModel(); model.MyUser = GetUser(userId); model.UserBooks = GetUserBooks(userId); return View(model); 这种方式视图仍然是愚蠢的(应该是这样)并且模型相对简单.这也有助于测试目的. 希望这可以帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – System.Web.HttpContext.Current在检查Cache后自
- asp.net-mvc – 如何使用MVC3 Razor布局页面?
- asp.net core系列 43 Web应用 Session分布式存储(in memory
- 使用ASP.Net进行适当的用户界面设计
- asp.net – w3wp.exe占用多少内存
- asp.net – 什么是Html.AntiForgeryToken帮助函数?
- asp.net – AspNetCore.Mvc与AspNetCore.Mvc.Core
- ABP官方文档(六)【集成OWIN,调试】
- asp.net – 计算SQL中值的总和,以显示每月名称
- asp.net – 不包括’00000’的5位数字的正则表达式
推荐文章
站长推荐
- asp.net-mvc – 为什么ASP.NET MVC使用会话状态?
- asp.net-mvc – 使用ELMAH记录EventLog中的错误
- asp.net – User.GetUserId()在控制器的构造函数
- 如何追踪每一笔记录的来龙去脉:一个完整的Audit
- asp.net-mvc – 我应该为ASP.Net MVC项目使用什么
- asp.net-mvc – 在MVC3中渲染导航
- asp.net-mvc – System.Web.MVC.UpdateModel可以
- ASP.NET核心:如何获取远程IP地址?
- asp.net-mvc – 一个ASP.NET MVC验证器,用于确保
- asp.net – IIS7:服务应用程序池“YYYYY”的进程
热点阅读