asp.net – MVC的最佳实践..使用接口的ViewModel绑定示例
|
我是ASP.NET MVC 3.0的新手,并尝试使用MVC ViewModel设计来构建一个应用程序. 我想知道最好的做法是对ViewModels的控制器进行更新,并在下面提供几个问题.这是我迄今为止的理解(可能是错误的).. >我们创建模型. 到目前为止,我已经通过创建一个新类并使用相同的名称从不同的基本模型添加属性来创建了ViewModel.在这一点上,我有以下问题: Q1:每个ViewModel都有自己的控制器,并访问每个基本模型存储库类以获取其值? Q2:在ViewModel中,应该包括您正在使用属性的所有基本模型的ID字段,考虑到您可能需要通过ViewModels控制器将Update Update更新回到Base Models存储库(需要ID值)? Q3:如何使用接口绑定属性,以便使用存储库保存控制器中的模型. 我一直无法找到一个解释一切的教程或资源,一个完整的答案将是以下示例: > 2x简单模型,1x简单视图模型,1x接口用于绑定,1x简单控制器,使用接口类绑定更新,1x存储库,即 //型号1 public class Person
{
int PersonID {get;set;}
string FirstName {get;set;}
string LastName {get;set;}
DateTime DOB {get;set}
}
//模型2 public class Place
{
int PlaceID {get;set;}
string Description {get;set;}
string AreaType {get;set;}
string PostCode {get;set;}
}
// ViewModel(包含模型中的属性) publc class ViewModel
{
//Person attributes
int PersonID {get;set;}
string FirstName {get;set;}
string LastName {get;set;}
//Place attributes
int PlaceID {get;set;}
string Description {get;set;}
string AreaType {get;set;}
//other attributes
string someOtherAttributeForDisplay {get;set}
}
// Model1接口(用于绑定模型) public interface IPerson
{
string FirstName {get;set;}
}
// Model2接口(用于绑定模型) public interface IPlace
{
string Description {get;set;}
string AreaType {get;set}
}
// ViewModelController? {
//What goes here?
}
//库? {
//what goes here?
}
解决方法我想你可能会复杂一个非常简单的概念.首先要做一些一般规则: >不要使用TryUpdateModel.只是不要 您不需要使用接口. 视图模型应该是非常简单的类,只包含您需要的视图信息.如果您的视图与其显示的POST信息不同,则只需为POST创建不同的视图模型. 我们为我们的视图模型使用{Controller} {Action}模型的命名约定.所以对于一个名为“List”的操作,在“Post”控制器上,我们将有一个名为“PostListModel”的模型. 最后,在这里查看我的回应Real example of TryUpdateModel,ASP .NET MVC 3 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-core – 设置.NET Core项目的版本号
- asp.net-mvc – 测试控制器使用User.Identity.Name的操作
- asp.net – Web部署错误到IIS – 应用程序池managedRuntime
- asp.net-mvc – 如何在asp.net mvc4应用程序中显示注册用户
- asp.net – 更改事件和IE8的jQuery问题
- IIS ASP.NET vs(NGINX FastCGI Mono或XSP)的性能?
- 在ASP.Net MVC应用程序中放置初始化代码的位置?
- asp.net-mvc – ASP.NET MVC 2中的空查询字符串参数的模型绑
- asp.net-mvc – 有什么图形设计器ASP.NET MVC吗?
- 如何防止密码和其他敏感信息出现在ASP.NET转储中?
- ASP.NET Core中实现用户登录验证的最低配置示例代
- asp.net-mvc – ASP.net Web API和System.Net.Ht
- asp.net-mvc-3 – “字段宽度必须是数字.”在客户
- asp.net – MVC控制器和视图应该有1到1的关系吗?
- asp.net-mvc – 在VS2015中使用gulp在ASP.NET 4.
- 如何将对本地创建的NON ASP.Net 5 dll的引用添加
- asp.net-mvc – MVC – 编辑对象列表
- 转:[WebServices]介绍
- 如何从ASP.NET Web服务生成JSONP以进行跨域调用?
- asp.net – 如何在页面加载时以“添加新”模式进
