在深入学习Angular框架之前,需要了解如何将Angular注入到MVC项目中,以及如何将数据从Angular控制器传递到视图。本文将引导了解如何使用Angular控制器进行数据的获取和提交。
将通过创建一个员工列表并将其以表格形式显示,同时创建一个新的学生记录来实现这一目标。
首先,需要添加一个新的类,名为Student
。由于使用的是MVC模板,将这个类添加到Models
文件夹下,并为其添加一些属性。
接下来,将创建一个新的控制器,并将其命名为StudentController
。在控制器文件夹上点击右键,选择Add->Controller
。如果使用的是VS 2015,将看到多个选项,如空控制器、带有读写操作的控制器等。选择空控制器,后续的博客中,将看到如何使用这些模板。
命名控制器为StudentController
,点击确定,现在已经有了控制器,并且如果注意到,会在Views
文件夹下创建一个新的Student
文件夹,如果没有,让创建一个新的文件夹。
现在,大多数人都熟悉N层架构,也遵循这一架构,但为了简单起见,这里不使用N层架构,但随着继续前进并实现DataAccess
层,将使用它。现在,让添加一个名为Services
的文件夹,它将作为虚拟DataAccess
层。
在解决方案上点击右键,选择Add-> New Folder
,并将其命名为Service
,让添加一个名为StudentService
的新文件。
现在,让在这个服务下添加一些方法,将有2个方法:GetStudentList()
和CreateNewStudent()
。这就是服务现在的样子,由于这是一个虚拟服务,将手动传递数据。
让在之前创建的StudentController
中使用这个服务,将在StudentController
中创建2个动作:GetStudent()
和SaveStudentData()
。
为了获取数据,将添加一个新的方法GetStudentList()
,它将返回json数据,在其中将调用服务的GetStudentList()
方法。对于保存数据,将有一个动作方法SaveStudentData()
,它将调用服务的CreateNewStudent()
方法,并返回员工ID。
现在将在视图中显示学生数据,添加一个名为Index.cshtml
的视图在student
文件夹中,要添加,右键点击student
文件夹Add->View
。
让从之前创建的angularController
中调用动作,将使用Angular的$http
服务。将在加载事件上调用它。将把值赋给名为StudentList
的作用域变量。
如果注意到类似于$ajax
,它返回成功和错误,在错误中有一个作用域变量,将设置error= true
,在索引视图中放置了一个div
来显示错误。
现在让按下F5查看结果。
很好,已经显示了数据,现在让移动到添加新的记录。首先,将添加一个名为AddStudent.cshtml
的视图,右键点击Student
文件夹Add->View
。
为了显示视图,还将添加一个动作来渲染视图。以下是动作方法。
现在,将在索引页面上有一个链接,将用户重定向到AddStudent
视图。添加此代码在最后一行@Html.ActionLink(“Add Student”, “AddStudent”)
,它将创建一个链接。同时,让修改AddStudent
视图以创建一个表单。
现在让按下F5查看结果。
如果注意到,使用了ng-click
,如果在想它是什么意思,它是一个指令,可以在按钮点击事件触发时触发函数。ng-model
是一个指令,可以将数据从视图传递到控制器。让也修改观点,并添加成功和错误的div
来显示在成功和错误的情况下。
现在让按下F5并查看结果。保存数据后,将得到这样的结果:
已经完成了基础部分。如果有任何疑问或问题,可以通过电子邮件联系:。