ASP.NET Core 後台查詢頁面教學
�����}�o�`�����@�إ\��O�b��x�s�W���@��ơA�M��b�e�x��ܸ�ơA�����������i�γ̷s�����\��A�����оDZN�|�ЧA�p��إ߫�x���i���@�ɭ��A�æb�e�x��ܸ�ơC
���оǽd�ҷ|�إ� ASP.NET Core MVC �s�M�סA�s�W�@�ӫ�x���i�z�����A�z�L�d����ܸ�Ʈw�������i��ơC
�d�ߥ�����Ƨe�{�O²�檺�ʧ@�A�ӧڷ|�[�W�����d�߬۹�O���������ʧ@�A�ڷ|�ܽd�@�ӧڱ`�Ϊ�������k���U��ѦҡC
���d�Ҩϥ� ASP.NET Core MVC �����O .NET6�A�e�ݨϥ� Vue3 �ج[�A��ݸ�Ʈw�ϥ� SQL Server 2019�A�ϥ� Dapper �M��s�u�A�好���d�ҥi�H�U���C
�ؿ�
1 �إ߱M�� [2 �]�p�d�߭���](#step2) 3 ��Ʈw�y�k [4 �M�װ�¦�]�w](#step4) [4.1 ��J Vue3 �M�� [4.2 ��J jQuery BlockUI Plugin �M�� [4.3 ���� Json �^�ǹw�]�p�g�]�w](#step7) 5 �d�ߤ��i [5.1 View ��� Vue3 �y�k 5.2 Controller �y�k 5.3 Ū�� appsettings.json 5.4 �w�� Dapper 5.5 �إ� ViewModel [6 �W������d�ߥ\�� 6.1 �s�W VuePagination.js ���� 6.2 �ޥ� VuePagination.js ���� 6.3 ���U VuePagination.js ���� 6.4 �ϥΤ������� 6.5 View �d�ߥ\��վ� [6.6 grid ����W������ݩ� 6.7 Controller �d�ߥ\��վ� 6.8 ViewModel �վ� 6.9 �d�ҤU��
�إ߱M��
�}�� Visual Studio 2022�A�إ߷s�M���uASP.NET Core Web ���ε{�� (Model-View-Controller)�v�C

��J�M�צW�١B���|�C

�[�c��ܡu.NET 6.0�v�����A���U�u�إߡv�N�|�إߦ��M�סC

�]�p�d�߭���
�o�̧ڭ̷s�W�@�� Controller �M���B�z��x�����i���@�C �b Controllers ���k��s�W�@�ӡu����v�C

��ܡuMVC ��� �V �ťաv, ���W���uAdmAnnoController�v�C
�b \Controllers\AdmAnnoController.cs �ɮת� Index() ���k���u�s�W�˵��v�A�i�H�s�W���� View �����C

��ܡuRazor �˵��v�A�W�ٺ����w�]�uIndex�v�A�Ŀ�u�ϥΪ����t�m���v�A���u�s�W�v�C

�e���]�p�ڭ̴N�q Bootstrap �ƻs�@�ǾA�X�d����ܪ��d�Ҩ� View �̭��C �ڥΨ쪺�˦��� Card, Form, Table, Button
�ڳ]�p�F�d�ߵe���A�����ϥΥH�U�y�k���N \Views\AdmAnno\Index.cshtml �즳���y�k�C
�NProgram.cs�ɮ˼ƲĤG�檺pattern: "{controller=Home}/{action=Index}/{id?}");�אּpattern: "{controller=AdmAnno}/{action=Index}/{id?}");�C
�� F5 ���������N�|�ݨ�H�U���e���C

����o�̥D�n�O���]�p�ڭ̪��e���A���U�ӴN�n�]�p��Ʈw�M��}�l�g�{���X�F�C
��Ʈw�y�k
�ڭ̷|�ϥ� SQL Server �ӷ��@��ƨӷ��A�ڤw�g�s�W�n ��Teach�� ����Ʈw�F�A���ۥH�U�y�k�s�W���i Table�C
���F Table ����A�o�̧ڴN�����s�W 16 �����ո�ơA�]���ڭ̲Ĥ@�ӥ\��O�d�ߡA���F��Ƥ~��ݥX���G�C
�M�װ�¦�]�w
�o�̷|���w�� ASP.NET Core MVC �M�W�[�@�ǰ�¦�]�w�A�H��K����}�o�C
�[�J Vue3 �M��
Vue3 �O�e�ݱ�����쪺�ج[���O�w�A���} \Views\Shared_Layout.cshtml �ɮסA�b�U�� JavaScript �ޥμW�[ Vue3 ���O�w�y�k�A���Ǫ��n�D�n��b jQuery ����~��C
<script src="https://unpkg.com/vue@3"></script>

���b Layout �[�W Vue3 �ޥΫ�A�ڭ̴N�i�H�b�Ҧ��������ϥ� Vue3 �y�k�F�A���ޥλy�k�ӷ��i�Ѧҩx����C
�[�J jQuery BlockUI Plugin �M��
jQuery BlockUI �O���e�ݦV��ݩI�s�ɡA�Ȯ���w�e�ݵe���A�H����G���I�������D�C �b���[�J Vue3 �M�U��A�[�J�ޥλy�k�C
<script src="https://malsup.github.io/jquery.blockUI.js"></script>
���� Json �^�ǹw�]�p�g�]�w
�b .NET Framework �ϥ� Json �^�ǮɡA�e�ݦ��쪺 Json ����j�p�g�]�w�P ViewModel �ۦP�A�Ӧb .NET Core �ɫh�w�]�}�Y���p�g (�m�p���R�W)�A�o�̧ڳ��|�վ㦨�P ViewModel �ۦP�C
�b Program.cs �[�J�H�U�y�k�G

�d�ߤ��i
�o�̷|�}�l�g�{���X�A�b�]�p�e���W�� 2 �Ӭd�����A1 �Ӭd�߫��s�A�����U�d�߶s��A�a�J�d�߱���A�q��Ʈw��Ū����Ƨe�{�C
View ���[ Vue3 �y�k
���ڭ̦b Index.cshtml �ϥ� Bootstrap �]�p�n�F�e���A���ۭn�[�W Vue3 ���d�߰ʰ_�ӡC �N�H�U���y�k�����л\�� \Views\AdmAnno\Index.cshtml �̭��C
Controller �y�k
�b View �d�߫�|�I�s ~/AdmAnno/Query�A�b \Controllers\AdmAnnoController.cs �[�J�H�U Action�C
�� appsettings.json
�ڱN��Ʈw�s�u��b appsettings.json �̭��A���} appsettings.json ��A�[�J�H�U�s�u�r��C

�b .NET 6 �n���o appsettings.json ���]�w�ӷ��A�n�b Controller �W�[�غc�lŪ�� Configuration�C
�w�� Dapper
�ڸ�Ʈw���ʪ���ϥηL�� ORM �M�� Dapper�A�ݭn�w�� Dapper �~��ϥΡC �}�ҡu�M�� > �z NuGet �M��v�C

�j�M�uDapper�v�A�w�˦��M��C

�إ� ViewModel
ViewModel �O�Ψөw�q Controller �P View ���������w�q�A�ڭ̭��إߤF�s Controller�A�ҥH�o���ӫإߥ������� ViewModel�C �b�uModel ���k�� > �[�J > ���O�v�C

�M��R�W�� ��AdmAnnoViewModel���C

�M��b AdmAnnoViewModel ���O�̭��A�[�J�b Controller �Ψ쪺 ViewModel�C

������o�̤���A�ڭ̴N�i�H����²�檺�d�ߥ\��F�A���U F5 ��A����u�d�ߡv�s�A�N�i�H��ܥX��Ʈw������ƤF�C

�i�O�o�ɭԧڭ��ٯʤ@�Ӥ������\��A���U�ӧڭ̴N�~���������оǡC
�W�[�����d�ߥ\��
�����W�������˦��ܦh�ءA�ӧڴ��ѧڳ̱`�Ϊ� Vue3 �������U��ѦҡA�ڭ̫e�ݬO�إߦb Vue3 �W�����A�ҥH�ڷ|�b Vue3 �s�W�@�Ӥ���������C
�o�q���оǷ|��������@�I�A�ڬO�v�B�y�k�оǡA�p�G�L�k�z�Ѫ��ܡA�i��U���ݤ@�U���㪺�d�ҨӤ��|����e�����@�I�C
�s�W VuePagination.js ����
��������O�@�Ӧh�ƭ������|�Ψ쪺�\��A��ij�i�H�s�W�@���ɮסA�N������g�b�̭��A�M��b Vue3 �N����ޤJ�C
�b /js �ؿ����s�W�@���ɮסA�ɮשR�W�� ��VuePagination.js���C

�M��bVuePagination.js ���K�W�H�U�y�k�C
�ޥ� VuePagination.js ����
�b \Views\Shared_Layout.cshtml �� JavaScript �W�[�ޥ� VuePagination.js �ɮסC
<script src="~/js/VuePagination.js"></script>

���U VuePagination.js ����
Vue3 ����ݭn���U�b\Views\AdmAnno\Index.cshtml�ɮת� Vue.createApp({}); ���~��A�� Vue ������U����A�W�٬� ��vue-pagination���C
app.component('vue-pagination', VuePagination);

�ϥΤ�������
���U�n����A�N�i�H�b�e���W��������m�A��W��������C
<vue-pagination v-bind:pagination="grid.pagination" v-on:requery="reQuery"></vue-pagination>

�]�������|���s�d�ߡA�ҥH�o����|�I�s�d�߭��� reQuery() �\��A���歫�s�d�ߡC
View �d�ߥ\��վ�
�ڭ̭��w�g�g�n�F���d�� Query()�A�o�̦]�������\��A�վ�@�U�A�üW�[�@�� reQuery() �������ɥi�H���s�I�s�C �վ�᪺��k�O�G
grid ����W�[�����ݩ�
�b Vue3 �즳�ŧi�� data �ݩ� grid �n�W�[�@�Ӥ����ݩʡG

Controller �d�ߥ\��վ�
�b Controller �쥻�]�g�n�F�d�ߥ\��A�o�̦]�W�[�����d�߫�A�]�n�վ�@�U�y�k�A�i�ΥH�U�y�k�������N�쥻���y�k�G
�b SQL Server �������A�ڬO�����ק� SQL �y�k�A���d���`���ơA�A�d�ݭn���d���ơA���C�������ɡA���|���s�p��A�u�d�ݭn����ƽd��C
ViewModel �վ�
ViewModel �������N�O�W�[����������A�o�̧ڴN�����K�W�y�k�A�i�H�������N���e�� Model�C
�������o�̫�A�N�i�H���դ������\��F�A�� F5 ����M�סA�d�߸�ƫ�N�|��ܤ��������G�C

������ 2 ���C

�o�O�ګܱ`�Ϊ��e�ݤ�������A���ɵ��A�C
Last updated