C# ASP.NET MVC中的视图模型和域模型
我正在开发一个ASP.NETMVC应用程序,我遇到了一个非常尴尬的局面 我有一个页面,用户可以根据某些条件搜索某些项目(比如,学生)。我曾经将一组学生传递给我的视图,但后来我添加了一些搜索设置,因此我决定创建ViewModel,如下所示C# ASP.NET MVC中的视图模型和域模型,c#,asp.net-mvc,C#,Asp.net Mvc,我正在开发一个ASP.NETMVC应用程序,我遇到了一个非常尴尬的局面 我有一个页面,用户可以根据某些条件搜索某些项目(比如,学生)。我曾经将一组学生传递给我的视图,但后来我添加了一些搜索设置,因此我决定创建ViewModel,如下所示 public class SearchViewModel { public string SearchString { get; set; } public bool IsCaseSensitive { get; set; } ...
public class SearchViewModel
{
public string SearchString { get; set; }
public bool IsCaseSensitive { get; set; }
...
//other parameters
...
public IEnumerable<Student> Students { get; set; }
}
我不假装这是不可侵犯的事实。但在我看来:
这是我的2美分 谢谢。我唯一没有完全理解的是你的第三个答案。关于你的第二个答案,我不应该在我的视图中使用任何域模型(通常是Student,而不是StudentViewModel)。然而,你说我应该用我的学生课。最好的方法是1)保持域模型的学生状态,2)使用StudentViewModel来满足视图的需要,而不是将其划分为不同的属性,这是对的吗?另外,我对DTO条款不太满意。我的ViewModels可以被视为DTO吗?
public class SearchViewModel
{
public string SearchString { get; set; }
public bool IsCaseSensitive { get; set; }
...
//other parameters
...
public IEnumerable<Student> Students { get; set; }
public IEnumerable<int> someData { get; set; }
}
public class SearchViewModel
{
public string SearchString { get; set; }
public bool IsCaseSensitive { get; set; }
...
//other parameters
...
public IEnumerable<StudentViewModel> StudentModels { get; set; }
}
public class StudentViewModel
{
public Student Student { get; set; }
public int someData { get; set; }
}
public class StudentViewModel
{
public string Name { get; set; }
public int GroupId { get; set; }
public int someData { get; set; }
}