Asp.net mvc ASP.NET MVC 3视图和模型
我有一个称为组织的模型,该模型存储在称为模型的组件中。需要插入组织并更新组织 两个问题: 在插入新组织时,我希望确保该组织不存在,因此我插入了一些远程验证。然后将模型绑定到插入视图 现在,当我创建更新视图时,我应该使用不同的视图模型来删除重复组织名称的远程验证吗?如果是这样,我不能将我的基本组织模型用于更新视图,那么我是否需要创建两个不同的视图,一个用于插入,一个用于更新?如果是这样的话,将会有两个基本相同但使用不同模型的视图Asp.net mvc ASP.NET MVC 3视图和模型,asp.net-mvc,entity-framework,razor,Asp.net Mvc,Entity Framework,Razor,我有一个称为组织的模型,该模型存储在称为模型的组件中。需要插入组织并更新组织 两个问题: 在插入新组织时,我希望确保该组织不存在,因此我插入了一些远程验证。然后将模型绑定到插入视图 现在,当我创建更新视图时,我应该使用不同的视图模型来删除重复组织名称的远程验证吗?如果是这样,我不能将我的基本组织模型用于更新视图,那么我是否需要创建两个不同的视图,一个用于插入,一个用于更新?如果是这样的话,将会有两个基本相同但使用不同模型的视图 有人能帮忙吗?对于这个特定场景,验证没有其他同名组织存在似乎对ins
有人能帮忙吗?对于这个特定场景,验证没有其他同名组织存在似乎对insert和update案例都有效,因此您可以重用相同的视图模型 但是,在更新组织时验证名称不存在必须有额外的权限,因为如果用户不更改组织名称,则数据库中至少有一条记录具有该名称,即正在更新的记录,并且验证应忽略该记录 因此,如果您选择重用视图模型,则验证必须根据操作(插入或更新)的上下文执行。
- 问题1:检查验证:
If(isNotValid()){
ModelState.AddModelError("Key", "The user name or password provided is incorrect.")
}
键是视图中不正确的字段
- 问题2:创建/编辑之间的区别
public class DashBoardViewModel
{ public List(Of Organisation) Organisation {get;set;}
public List(Of Staff) Staff{get;set;}
public List(Of Assignment) Assignments{get;set;}
}
上面是一个虚构的仪表盘视图模型,我在其中显示了所有组织、员工和任务。
ViewModel不仅仅包含一种类型的对象,它还包含多种类型的对象
别忘了,有时当您需要向视图中添加一些数据时,您可以使用ViewData或ViewBag,而不是创建ViewModel。我认为问题在于我没有使用视图模型,而只是使用域实体。我认为我需要开始创建视图模型,然后将视图绑定到视图模型,而不是域实体。一般来说,使用视图模型更好,因为您可以根据视图的实际需要定制视图模型,但这不是强制性的。正如软件开发中几乎所有的事情一样,它取决于用例。