我想知道一个MVC模型类可能有它们的功能吗?我想在View中使用这些方法来接受一个参数并做一些业务逻辑。
是标准还是坏主意?或者这个方法有什么问题吗?
答案 0 :(得分:4)
在我看来,不是标准,除非在你的脑海里模特不仅仅是简单的课程......
试试这个:
保持模型分离:
- 为您的业务层和数据访问层提供服务的模型。让我们只调用它们Models
。
- 为您的MVC视图提供服务的模型。让我们称呼他们为ViewModels
。
然后尝试将您的控制人员视为交警。让他们只是接受请求并指派某人去做实际的工作。
这意味着最好在您的应用程序中创建2个独立的部分。
- 业务层。 - 数据访问层。
如果应用程序很小,您可以将上面的2个图层设为一个。
毕竟你将拥有:
-Controllers与ViewModels对话。 - 控制器使用模型与业务/数据访问层进行通信。
因此请保持您的models
和viewmodels
精简,并且不要在控制器中执行业务逻辑,而应在单独的层中(可能是另一个项目或项目中的另一个类)。
其他信息:
您可以使用以下模型:
public class Course
{
public int CourseId { get; set; }
public string CourseName { get; set; }
}
public class Faculty
{
public int FacultyId { get; set; }
public string FacultyName { get; set; }
public List<Course> AllotedCourses { get; set; }
}
public class Student
{
public int EnrollmentNo { get; set; }
public string StudentName { get; set; }
public List<Course> EnrolledCourses { get; set; }
}
您的ViewModel:
public class ViewModelDemoVM
{
public List <Course> allCourses { get; set; }
public List <Student> allStudents { get; set; }
public List <Faculty> allFaculties { get; set; }
}
然后创建一个单独的类来处理模型并返回视图模型以供控制器传递给视图,反之亦然。
答案 1 :(得分:0)
我通常将所有业务逻辑放在模型类中,并尽可能使控制器变得愚蠢。
就个人而言,我认为除非没有别的办法,否则不应该考虑任何业务逻辑。
可能您可以向我们展示您的代码,并且从那里开始讨论会更容易。