bank-dar-mvc

Page 1

‫‪1‬‬

‫تسن اهلل الزحوي الزحین‬

‫آهَسش‬

‫ارتثاط تا تاًک اطالعاتی در‬

‫‪MVC‬‬

‫‪ASP.NET‬‬

‫تْیِ کٌ​ٌدُ ‪:‬‬ ‫اتَالفضل عقیلی کَّستاًی‬

‫‪www.ParsBook.org‬‬


‫‪2‬‬

‫فْزست‬ ‫‪ MVC‬چیست ؟‬

‫‪3‬‬

‫‪Model .1‬‬

‫‪3‬‬

‫‪View .2‬‬

‫‪3‬‬

‫‪Controller .3‬‬

‫‪3‬‬

‫قدم اٍل) دریافت‬

‫‪asp.net mvc‬‬

‫‪4‬‬

‫ٍ ًصة آى ‪:‬‬

‫قدم دٍم) ساخت اٍلیي تزًاهِ تا ‪: mvc‬‬

‫‪4‬‬

‫قدم سَم ) ایجاد یک تاًک تزای پزٍژُ ‪:‬‬

‫‪6‬‬

‫قدم چهارم ) تزقزاری ارتثاط تیي تاًک ٍ پزٍژُ ‪:‬‬

‫‪7‬‬

‫قدم پٌجن ) ایجاد صفحات ٍب سایت ‪:‬‬

‫‪8‬‬

‫‪ .1‬ایجاد صفحِ تزای ًوایش اطالعات تاًک (‪: )index‬‬

‫‪9‬‬

‫‪ .2‬ایجاد صفحِ ای تزای ثثت اطالعات در جدٍل (‪:)Create‬‬

‫‪11‬‬

‫‪ .3‬حذف اطالعات درٍى جدٍل (‪: )Delete‬‬

‫‪13‬‬

‫‪ .4‬ایجاد صفحِ ای تزای تزٍس رساًی (‪)Edit‬‬

‫‪15‬‬

‫‪www.ParsBook.org‬‬


‫‪3‬‬

‫دس ایي فبیل آهَصضی لصذ داسین تب پس اص آضٌبیی اًذن ثب تىٌَلَطی جذیذ ‪ MVC‬ضشوت هبیىشٍسبفت یه پشٍطُ ثصَست ػولی اًجبم‬ ‫دّین تب ثتَاًین تب حذٍدی ثِ هبّیت ‪ MVC‬پی ثجشین ‪ .‬لجل اص ّش چیض جب داسد وِ اص استبد ػضیضم جٌبة آلــبی ستـبیص تطىش ًوبین وِ‬ ‫ّوَاسُ هي سا دس صهیٌِ ّبی هختلف ثْشُ هٌذ هی سبصًذ ‪.‬‬

‫‪MVC‬چیست ؟‬ ‫‪ MvC‬هخفف سِ ولوِ ‪ّ Model View Controller‬ست ‪.‬دس ٍالغ ‪MVC‬ثش سٍی هؼوبسی ّبی چٌذ الیِ ای جْت جذاسبصی‬ ‫لسوت ّبی هختلف ثشًبهِ ٍ ثِ ؼَس دلیك تش جذا وشدى ثخص ّب هٌؽمی ثشًبهِ اػن اص دیتب ‪ّ permission ،‬ب ‪ ،‬چه وشدى صحت‬ ‫دادُ ّب ٍ ‪ ....‬اص الیِ ‪ Presentation layer‬یب دس ٍالغ ّوبى الیِ ای وِ هستمیوب ثب وبسثش ًْبیی )‪ (End user‬دس استجبغ است ‪،‬لشاس‬ ‫هیگیشد‪ .‬پس ثش اسبس تَظیحبت فَق هیتَاًین ّش یه اص ثخص ّبی هؼوبسی ‪ MVC‬یؼٌی ‪ controller ٍ View ٍModel‬سا ثِ‬ ‫ضىل صیش تؼشیف وٌین‪.‬‬ ‫‪: Model - 1‬‬ ‫دس ٍالغ ثبس اصلی هؼوبسی ‪ MVC‬ثش ػْذُ ایي ثخص است ‪ .‬ایي ثخص هیتَاًذ ثب دادُ ّب دس استجبغ ثبضذ ‪.‬الضاهب هٌظَس اص دادُ حتوب استجبغ ثب‬ ‫پبیگبُ ّبی دادُ ّوچَى ‪ً ... ٍ Access ٍ MSSQL‬یست ‪ ،‬حتی هٌجغ دادُ ّب دس ثخص‬ ‫‪ Model‬هیتَاًذ یه آسایِ اص اػذاد ٍ یب ّش چیض دیگشی ثبضذ ‪ّ .‬وچٌیي ‪ٍ Model‬ظیفِ چه وشدى دادُ ّب جْت صحت دسستی دادُ‬ ‫ّب سا ّن دس ثش ػْذُ داسد (دس ایي صهیٌِ ّوىبسی ثیطتشی ثب ثخص ‪ Controller‬داسد) ٍ ّویٌؽَس ٍظبیف دیگشی وِ دس هثبل ّب ی‬ ‫ػولی وِ دس آیٌذُ خَاّن صد ثیطتش آضٌب خَاّیذ ضذ‪.‬‬ ‫‪: View - 2‬‬ ‫ایي ثخص وِ دس ٍالغ ّوبى ثخص ‪ Presentation Layer‬دس هؼوبسی ‪ 3‬الیِ هیجبضذ ٍظیفِ ثش لشاسی استجبغ ثب وبسثش ًْبیی ٍ گشفتي‬ ‫دادُ اص وبسثش ٍ ًوبیص دادُ ّبی اهبدُ ثب وبسثشاص ؼشیك ثشلشاسی استجبغ ثب دٍ ثخص دیگش یؼٌی ‪ controller ٍModel‬است ‪.‬دس ٍالغ‬ ‫ًىتِ هْوی وِ دس ثخص ‪ View‬ثبیذ اى سا هذ ًظش داضت ایي است وِ ایي الیِ هسئَل وٌتشل صحت دادُ ّبی ٍاسد ضذُ اص ؼشیك وبسثش‬ ‫ٍ ّوچٌیي هسئَل صحت دادُ ّبی ًطبى دادُ ضذُ ثِ وبسثش ًیست ‪ .‬دس ٍالغ ایي ثخص یب دادُ ّبی خبم وبس هیىٌذ ‪ .‬ثِ ػٌَاى یه هثبل‬ ‫سبدُ خیلی اص ثشًبهِ ًَیسبى هَلؼی وِ دس فشم ‪ Login‬ثشًبهِ ‪،‬وبسثش ولوِ ػجَس خَد سا ٍاسد هیىٌذ ‪ ،‬دس ّوبى فشم ‪ Login‬الذام ثِ چه‬ ‫وشدى پسَسد هجٌی ثش صحت آى ٍ ‪ ...‬هی وٌ​ٌذ ‪ .‬وِ ایي ػول دس هؼوبسی ‪ MVC‬لبثل لجَل ًیست‪ .‬دس ٍالغ ثشای حل هسئلِ فَق دس‬ ‫هؼوبسی ‪ MVC‬دس فشم ‪ٌّ Login‬گبهی وِ وبسثش ولوِ ػجَس سا ٍاسد وشد ٍ دووِ ‪ Login‬یب ٍسٍد سا صد ‪ ،‬ولوِ ػجَس دادُ ضذُ ثذٍى ّیچ‬ ‫گًَِ اػوبلی اػؼن اص ‪ Encrypt‬وشدى ٍ ‪ ...‬ثِ ثخص ّبی دیگش فشستبدُ هیطَد ٍ فمػ یه ًتیجِ سبدُ هجٌی ثش ایي وِ وبسثش اجبصُ ٍسٍد‬ ‫داسد یب خیش سا اص ثخص ّبی دیگش دسیبفت هیىٌذ وِ ثش اسبس اى اجبصُ ٍسٍد وبسثش ثِ ثشًبهِ دادُ هیطَد‪.‬‬ ‫‪: Controller - 3‬‬ ‫ایي ثخص ّوبًؽَس وِ اص اسن اى هطخص است یِ ثخص وٌتشل وٌ​ٌذُ هی ثبضذ ‪ ٍ ،‬دس ٍالغ ٍاسؽی ثیي دٍ ثخص ‪View ٍ Model‬‬ ‫هیجبضذ‪.‬حبل ثجیٌین سًٍذ اجشای ثشًبهِ دس هؼوبسی ‪ MVC‬ثِ چِ ًحَی خَاّذ ثَد‪.‬‬

‫‪www.ParsBook.org‬‬


‫‪4‬‬

‫دس هؼوبسی ‪ MVC‬سًٍذ ولی ثشًبهِ (جضئیبت سا دس اداهِ خَاّیذ دیذ) ثِ ایي ضىل است وِ وبسثش تمبظبی خَد سا اص ؼشیك ٍاسػ ّبی‬ ‫ثشًبهِ ًَیسی (ًظیش ‪ّ Form‬ب ٍ ‪ّ User Control‬ب ٍ ‪ ) ..‬اص ثشًبهِ (اص ثخص )‪ View‬دسخَاست هی وٌذ ‪ .‬ثخص ‪View‬دس خَاست‬ ‫ّب سا ثِ ثخص ‪ Controller‬فشستبدُ ٍ ایي ثخص ثب ثشلشاسی استجبغ ثب ثخص ‪ Model‬دس خَاست ّبی وبسثش سا پشداصش وشدُ ٍ پس اص‬ ‫پبیبى پشداصش صهبًی وِ خشٍجی دسخَاست دادُ ضذُ آهبدُ گشدیذ ثخص ‪ Controller‬ثخص ‪View‬سا آگبُ هیسبصد تب خَد سا ثش اسب س‬ ‫تغییشات جذیذ وِ اصؽالحب دس هؼوبسی ‪ MVC‬ثِ آى حبل ‪ Model‬هی گَیٌذ ‪ ،‬ثِ سٍص سبصد ‪ .‬دس ٍالغ چیضی وِ ثبػث هیطَد تب ثخص‬ ‫‪Controller‬ثِ ثخص ‪ View‬اؼالع دّذ وِ ثبیذ حبلت جذیذ ‪ model‬سا دسیبفت وٌذ ٍ خَد سا ‪ Update‬وٌذ ایي است وِ ثخص‬ ‫‪View‬ثبیذ لجال خَدش سا دس ثخص ‪ Model‬اصؽالحب ‪Register‬وشدُ ثبضذ وِ الجتِ ػول ‪ Register‬وشدى تَسػ ثخص‬ ‫‪Controller‬اًجبام هیگیشد ‪ً .‬حَُ ‪ register‬وشدى ثخص ‪ View‬ثِ هؼوبسی آى هحیػ ٍ ّوچٌیي صثبًی وِ تَسػ آى ثشًبهِ سا‬ ‫گستشش هیذّیذ ٍ ّوچٌیي لبثلیت ّبی آى صثبى ثستگی داسد‪.‬‬ ‫ًکتِ اٍل ‪ً :‬شم افضاس هَسد استفبدُ دس ایي ثشًبهِ ‪ visual studio‬هی ثبضذ ‪.‬‬

‫ًکتِ‬

‫دٍم ‪ :‬ثْتش است ثشای ایجبد ایي صفحبت ثب ‪ ٍ LINQ ٍ asp.net‬یب ‪ ADO.net‬آضٌبیی داضتِ ثبضیذ ‪.‬‬

‫قدم اٍل‪ -‬دریافت‬

‫‪asp.net mvc‬‬

‫ٍ ًصة آى ‪:‬‬

‫اثتذا پلت فشم ‪ asp.net mvc‬سا اص ایٌجب دسیبفت ًوبییذ ٍ آًشا دسٍى سیستن خَد ًصت ًوبییذ ‪(.‬دس‬

‫‪Visual Studio 2010‬‬

‫ثصَست پیص فشض لشاس داسد ٍ ًیبص ثِ ًصت آى ًیست ) ‪.‬‬

‫قدم دٍم‪ -‬ساخت اٍلیي تزًاهِ تا ‪: mvc‬‬ ‫‪-1‬پس اص ًصت ایي پلت فشم ٍاسد هحیػ ‪ Visual Studio‬ضذُ ٍ گضیٌِ … ‪ new -> project‬سا اًتخبة هی ًوبیین ٍاص پٌجشُ ثبص‬ ‫ضذُ ‪ asp.net mvc web application‬سا اًتخبة هی وٌین ٍ ًبم آًشا ‪ MvcApp‬هی گزاسین ٍ هسیش هَسد ًؽش سا دادُ ٍ ثش سٍی‬ ‫دووِ ‪ ok‬ولیه هی وٌین ‪.‬‬

‫‪www.ParsBook.org‬‬


‫‪5‬‬

‫‪ -2‬پس اص ولیه ثش سٍی دووِ ‪ ok‬پٌجشُ ‪ create unit test project‬ثبص هی ضَد ‪ .‬ایي پٌجشُ اص هب هی پشسذ وِ آیب هبیلیذ وِ‬ ‫هحلی ثشای تست ثشًبهِ تبى دسٍى پشٍطُ داضتِ ثبضیذ ‪ .‬چَى هب ثِ ایي لسوت ًیبص داسین ّوبى تٌظیوبت پیص فشض سا اًتخبة وشدُ ٍ‬ ‫گضیٌِ ‪ ok‬سا هی صًین‬

‫پس اص ولیه ثش سٍی دووِ ‪ ok‬دس لسوت ‪ solusion Explorer‬فبیل ّب ٍ پَضِ ّبیی ثؽَس پیص فشض لشاس هی گیشد‪ .‬ایي فبیل ّب‬ ‫دس دٍ دستِ لشاس هی گیشًذ‪ :mvcApp -1 :‬وِ فبیل ّبی پشٍطُ دسًٍص لشاس هی گیشد ‪ :MvcApp.Tests -2 .‬وِ هشثَغ ثِ تست‬ ‫صفحبت پشٍطُ هی ثبضذ‪.‬‬

‫‪ -3‬حبال ثبیذ تؼذادی اص ایي فبیل ّب ٍ پَضِ ّبیی وِ ثؽَس پیص فشض لشاس گشفتِ سا پبن وٌین ‪ -1.‬اثتذا ثِ لسوت ‪ Controlles‬هشثَغ‬ ‫ثِ ‪ MvcApp‬سفتِ ٍ فبیل ‪ HomeController.cs‬سا حزف هی ًوبیین‪ -2 .‬ثِ لسوت ‪ Views‬هشثَغ ثِ ‪ MvcApp‬سفتِ ٍ پَضِ‬ ‫‪www.ParsBook.org‬‬


‫‪6‬‬

‫‪ Home‬سا پبن هی وٌین ‪ -3 .‬دس اًتْب ّن ثِ لسوت ‪Controlles‬هشثَغ ثِ ‪ MvcApp.Tests‬سفتِ ٍ فبیل ‪ HomeController‬سا‬ ‫حزف هی ًوبیین‪.‬‬ ‫اوٌَى هی تَاًین تٌظیوبت هَسد ًظش خَد سا اًجبم دّین‪.‬هب هی خَاّین دس ایي ثشًبهِ ثب یه ثبًه اؼالػبتی ( ‪ )sql‬استجبغ ثشلشاس وشدُ ٍ‬ ‫ػولیبتی ًظیش دسج‪ ،‬حزف ٍ ‪ ...‬سا اًجبم ّین‪.‬‬

‫قدم سَم ‪ -‬ایجاد یک تاًک تزای پزٍژُ ‪:‬‬ ‫ثش سٍی ‪ MvcApp‬دس لسوت ‪ solusion Explorer‬ساست ولیه وشدُ ٍ گضیٌِ …‪ add -> new Item‬سا اًتخبة وشدُ ٍ اص‬ ‫هٌَی ثبص ضذُ گضیٌِ ‪ sql server database‬سا اًتخبة هی وٌین ٍ ًبم آًشا ‪ MovieDB‬هی گزاسین ٍ دووِ ‪ ok‬سا هی صًین ‪ .‬ثب‬ ‫ایٌىبس یه ثبًه اؼالػبتی ثشای پشٍطُ هب ایجبد هی ضَد‪.‬‬ ‫ثش سٍی ‪ MovieDB.mdf‬داثل ولیه هی وٌین تب اؼالػبت آى دس لسوت ‪ server Explorer‬ظبّش ضَد‪.‬ثش سٍی پَضِ ‪table‬‬ ‫ساست ولیه وشدُ ٍ گضیٌِ ‪ add new table‬سا اًتخبة هی وٌین ‪.‬‬

‫دس پٌجشُ ثبص ضذُ فیلذ ّبی صیش سا ٍاسد هی وٌین ‪.‬‬

‫‪www.ParsBook.org‬‬


‫‪7‬‬

‫ثش سٍی فیلذ ‪ ID‬ساست ولیه وشدُ ٍ ‪ set primary key‬سا اًتخبة هی وٌین ‪ّ.‬وچٌیي همذاس ‪ Identity‬ایي فیلذ سا ‪ yes‬هی وٌین‬ ‫‪ .‬ثب ایٌىبس فیلذ ‪ id‬ثؼٌَاى ولیذ اصلی جذٍل اًتخبة هی ضَد ٍ ّش گبُ دسجی دس جذٍل صَست گیشد سیستن ثؽَس خَدوبس ثِ آى یه وذ‬ ‫غیش تىشاسی هی دّذ ‪.‬‬ ‫دووِ ّبی ‪ CTRL + S‬سا فطبس هی دّین ‪.‬پٌجشُ ای ثبص هی ضَد وِ ًبم جذٍل سا اص هب هی خَاّذ ‪ً.‬بم ایي جذٍل سا ‪ Movies‬گزاضتِ ٍ‬ ‫دووِ ‪ ok‬سا ولیه هی وٌین ‪ .‬حبال ثشای تست جذٍل همبدیشی سا دس آى ٍاسد هی وٌین‪ .‬ثشای ایٌىبس ثش سٍی جذٍل ایجبد ضذُ ساست‬ ‫ولیه وشدُ ٍ‬

‫سا اًتخبة هی وٌین ٍ همبدیش خَد سا ٍاسد هی وٌین ‪ .‬ثشای هثبل هب همبدیش صیش سا ٍاسد وشدین ‪.‬‬

‫فؼآل وبس ثب ثبًه اؼالػبتی توبم ضذ ٍ حبال ثبیذ ثیي ثبًه ٍ صفحبت ٍة استجبغ ثشلشاس وٌین‪.‬‬

‫قدم چْارم ‪ -‬تزقزاری ارتثاط تیي تاًک ٍ پزٍژُ ‪:‬‬ ‫ثش سٍی پَضِ ‪ Model‬ساست ولیه وشدُ ٍ گضیٌِ …‪ add -> new Item‬سا اًتخبة هی وٌین ٍ دس پٌجشُ ثبص ضذُ گضیٌِ ‪LINQ to‬‬ ‫‪ SQL Classes‬سا اًتخبة هی وٌین ٍ ًبم آًشا ‪ linq_class‬هی گزاسین ‪.‬‬

‫پٌجشُ ای ثِ ضىل ثبال ثبص خَاّذ ضذ ‪.‬دس سوت ساست دس پَضِ ‪ Models‬فبیل ّبی هشثَغ ثِ ‪ Llinq_class‬سا هطبّذُ هی وٌین‪ .‬ثش‬ ‫سٍی فبیل ‪ MovieDB.mdf‬سفتِ ٍ ثش سٍی آى دایل ولیه وشدُ تب دس پٌجشُ ‪ server Explorer‬ظبّش ضَد ‪ .‬حبال جذٍلی سا وِ وِ‬ ‫سبختِ ثَدین ثب ‪ Drag & Drop‬ثِ صفحِ ‪ linq_class.dbml‬هی وطین ٍ سّب هی وٌین ٍ صفحِ سا رخیشُ هی وٌین ‪.‬‬

‫‪www.ParsBook.org‬‬


8

) . ‫ (ثشای خلَت ضذى صفحِ توبم صفحبت ثبص سا هی ثٌذین‬. ‫ثبیذ ضىلی ّوبًٌذ ضىل ثبال ایجبد ضَد‬

: ‫ ایجاد صفحات ٍب سایت‬- ‫قدم پٌجن‬ add -> ٌِ‫ ساست ولیه وشدُ ٍ گضی‬MvcApp ِ‫ هشثَغ ث‬Controllers

ِ‫ دس اداهِ ثش سٍی پَض‬. ‫هشحلِ آخش وبس سسیذُ است‬

‫ سا ٍاسد وشدُ ٍ تیه پبییي سا ثشای‬homeController ‫ سا اًتخبة هی وٌین ٍ دس پٌجشُ ثبص ضذُ دس لسوت ًبم وٌتشلش‬controller ‫ ثب ًبم‬cs

‫ ثب ایٌىبس یه فبیل اص ًَع‬. ‫ سا هی صًین‬add

ِ‫ هی گزاسین ٍ دوو‬... ٍ ‫ ثشٍصسسبًی‬، ‫ حزف‬،‫اًجبم ػولیبتی ًظیش دسج‬ :‫ ایجبد هی ضَد وِ حبٍی وذّبی صیش است‬homeController

using using using using using using

System; System.Collections.Generic; System.Linq; System.Web; System.Web.Mvc; System.Web.Mvc.Ajax;

namespace MvcApp.Controllers { public class homeController : Controller { // // GET: /home/ public ActionResult Index() { return View(); } // // GET: /home/Details/5 public ActionResult Details(int id) { return View(); } // // GET: /home/Create public ActionResult Create() { return View(); } // // POST: /home/Create [AcceptVerbs(HttpVerbs.Post)] public ActionResult Create(FormCollection collection) { try { // TODO: Add insert logic here return RedirectToAction("Index"); } catch { return View(); } }

www.ParsBook.org


‫‪9‬‬ ‫‪//‬‬ ‫‪// GET: /home/Edit/5‬‬ ‫)‪public ActionResult Edit(int id‬‬ ‫{‬ ‫;)(‪return View‬‬ ‫}‬ ‫‪//‬‬ ‫‪// POST: /home/Edit/5‬‬ ‫])‪[AcceptVerbs(HttpVerbs.Post‬‬ ‫)‪public ActionResult Edit(int id, FormCollection collection‬‬ ‫{‬ ‫‪try‬‬ ‫{‬ ‫‪// TODO: Add update logic here‬‬ ‫;)"‪return RedirectToAction("Index‬‬ ‫}‬ ‫‪catch‬‬ ‫{‬ ‫;)(‪return View‬‬ ‫}‬ ‫}‬ ‫}‬ ‫}‬

‫ایي صفحِ اصلی تشیي صفحِ دس ‪ mvc‬است ٍ دس ٍالغ وٌتشل وٌ​ٌذُ ٍ استجبغ دٌّذُ ثیي لسوت ّبی ‪ model ٍ view‬هی ثبضذ ‪.‬دس‬ ‫اداهِ ثب ایجبد سبخت صفحبت تَسػ ایي صفحِ ٍ اًجبم ػولیبت ّبی الصم ثشای صفحبت دس ایي وٌتشلش ثحث خَاّین وشد‪.‬‬ ‫‪ - 1‬ایجاد صفحِ تزای ًوایص اطالعات تاًک (‪: )index‬‬ ‫ثشای اداهِ وبس وذ صیش سا دس لسوت ‪ّ using‬ب(فعبّبی ًبم) اظبفِ وٌیذ‪.‬‬ ‫;‪using MvcApp.Models‬‬

‫پس اص اظبفِ وشدى فعبی ًبم هَسد ًظش وذ صیش سا دسٍى‬

‫والس ‪public class homeController : Controller‬‬

‫لشاس دّیذ‬

‫;)(‪linq_classDataContext test = new linq_classDataContext‬‬

‫ثب ایي وبس یه والس اص ًَع ‪ linq_classDataContext‬ثب ًبم ‪ test‬دس صفحِ ایجبد هی ضَد ٍ جذٍلی سا وِ دسٍى‬ ‫فبیل ‪ linq_class‬لشاس داسد سا ثشای استفبدُ ّبی ثؼذی دسٍى ایي ثشًبهِ هْیب هی وٌذ‪.‬‬ ‫ثب استفبدُ اص هٌَی ‪ ٍ Build‬گضیٌِ ‪ build solusion‬یه ثبس ثشًبهِ سا چه هی وٌین ‪ .‬حبال وذ دسٍى تبثغ )(‪ Index‬سا وِ ثصَست‬ ‫صیش دس هی آٍسین‪:‬‬ ‫;))(‪return View(test.Movies.ToList‬‬

‫‪ً test‬بم والس ‪ linq_classDataContext‬است ٍ ‪ً Movies‬بم جذٍلی است وِ اص ثبًه دسٍى ‪linq_class‬‬ ‫لشاس دادین ٍ تبثغ )(‪ّ ToList‬ن اؼالػبت دسٍى ایي جذٍل سا ثصَست لیست ثِ وبسثش ًوبیص هی دّذ‪ .‬حبال ًبم تبثغ )(‪ Index‬سا‬ ‫اًتخبة هی وٌین ٍ ساست ولیه وشدُ ٍ گضیٌِ ‪ Add View‬سا اًتخبة هی وٌین صفحِ ای ّوبًٌذ صفحِ صیش ثبص هی ضَد ‪ .‬اؼالػبت‬ ‫صفحِ سا ّوبًٌذ ضىل صیش تغییش هی دّین ‪.‬‬ ‫‪www.ParsBook.org‬‬


10

.‫ ایجبد هی ضَد وِ دسٍى آى وذ ّبی صیش لشاس داسد‬Index.aspx ‫ ثؽَس خَدوبس یه صفحِ ثشای ضوب ثب ًبم‬add ِ‫ثب صدى دوو‬ <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<MvcApp.Models.Movy>>" %> <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> Index </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> <h2>Index</h2> <table> <tr> <th></th> <th> ID </th> <th> name </th> <th> family </th> <th> tel </th> </tr> <% foreach (var item in Model) { %> <tr> <td> <%= <%= </td> <td> <%= </td> <td> <%= </td> <td>

Html.ActionLink("Edit", "Edit", new { id=item.ID }) %> | Html.ActionLink("Details", "Details", new { id=item.ID })%> Html.Encode(item.ID) %> Html.Encode(item.name) %>

www.ParsBook.org


‫‪11‬‬ ‫>‪<%= Html.Encode(item.family) %‬‬ ‫>‪</td‬‬ ‫>‪<td‬‬ ‫>‪<%= Html.Encode(item.tel) %‬‬ ‫>‪</td‬‬ ‫>‪</tr‬‬ ‫>‪<% } %‬‬ ‫>‪</table‬‬ ‫>‪<p‬‬ ‫>‪<%= Html.ActionLink("Create New", "Create") %‬‬ ‫>‪</p‬‬ ‫>‪</asp:Content‬‬

‫یه ثبس ثشًبهِ سا اجشا وٌیذ ‪.‬هالحظِ هی وٌیذ اؼالػبت دسٍى جذٍل ضوب ًوبیص دادُ ضذُ است‪ .‬ثِ ّویي سبدگی یه صفحِ ثب ووتشیي‬ ‫وذ ًَیسی تَسػ ثشًبهِ ًَیس ایجبد هی ضَد ‪ .‬حبال تٌظین وشدى ٍ هؽبثك هیل خَد دس آٍسدى ایي صفحِ دست ثشًبهِ ًَیس یب ؼشاح‬ ‫سبیت هی ثبضذوِ هی تَاًذ تٌظیوبت خَد سا دس صفحِ ‪ index.aspx‬اًجبم دّذ ‪.‬‬

‫‪ - 2‬ایجاد صفحِ ای تزای ثثت اطالعات در جدٍل (‪:)Create‬‬ ‫ثشای ثجت دس اؼالػبت جذٍل دٍ تبثغ دسٍى فبیل ‪ homeController‬لشاس داسد وِ ًبم ّش دٍ )(‪ create‬هی ثبضذ ‪.‬تبثغ اٍل وِ فبلذ‬ ‫همذاس ٍسٍدی هی ثبضذ هشثَغ ثِ ظبّش صفحِ ثجت اؼالػبت هی ثبضذ ٍ تبثغ دٍم هشثَغ ثِ فؼل ٍ اًفؼبالتی است وِ هَجت ثجت اؼالػبت‬ ‫هی ضَد‪.‬‬ ‫ثش سٍی ًبم تبثغ اٍل ساست ولیه وشدُ ٍ گضیٌِ ‪ add view‬سا اًتخبة وٌیذ ‪ .‬تٌظیوبت ایي صفحِ ّوبًٌذ صفحِ ‪ index‬هی ثبضذ ٍلی‬ ‫یه تفبٍت ػوذُ داسد‪ .‬دس لسوت ‪ view cintent‬ثبیذ ثجبی ‪ list‬اص ‪ create‬استفبدُ وٌین‪ .‬چَى ایي صفحِ ٍظیفِ اش ثجت اؼالػبت‬ ‫است‪.‬ثب صدى دووِ ‪ Add‬صفحِ ‪ create‬ایجبد هی ضَد‪.‬وبس ثب تبثغ اٍل توبم ضذ ٍ صفحِ ‪ create‬ایجبد ضذ ٍ وذ ّبی دسٍى اى ثصَست‬ ‫صیشهی ثبضذ‪:‬‬ ‫"‪<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master‬‬ ‫>‪Inherits="System.Web.Mvc.ViewPage<MvcApp.Models.Movy>" %‬‬

‫‪www.ParsBook.org‬‬


12 <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> Create </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> <h2>Create</h2> <%= Html.ValidationSummary("Create was unsuccessful. Please correct the errors and try again.") %> <% using (Html.BeginForm()) {%> <fieldset> <legend>Fields</legend> <p> <label for="ID">ID:</label> <%= Html.TextBox("ID") %> <%= Html.ValidationMessage("ID", "*") %> </p> <p> <label for="name">name:</label> <%= Html.TextBox("name") %> <%= Html.ValidationMessage("name", "*") %> </p> <p> <label for="family">family:</label> <%= Html.TextBox("family") %> <%= Html.ValidationMessage("family", "*") %> </p> <p> <label for="tel">tel:</label> <%= Html.TextBox("tel") %> <%= Html.ValidationMessage("tel", "*") %> </p> <p> <input type="submit" value="Create" /> </p> </fieldset> <% } %> <div> <%=Html.ActionLink("Back to List", "Index") %> </div> </asp:Content>

‫ثب اجشای ثشًبهِ هی تَاًین‬.‫ چَى ثِ ایي وذّب ًیبصی ًذاسین‬. ‫همذاسی وِ دس ایي وذّب ثب پس صهیٌِ صسد لشاس داسد سا اصصفحِ حزف ًوبییذ‬ : ‫ سا هالحظِ وٌین وِ ثِ ضىل صیش است‬create ِ‫صفح‬

www.ParsBook.org


13

‫ ثشای ایٌىِ ایي دووِ ػولیبت ثجت‬.‫ سا دس ایي صفحِ هالحظِ هی وٌیذ ٍلی ایي دووِ ّیچ ػولی سا اًجبم ًوی دّذ‬create ِ‫دوو‬ ِ‫ ثشگشدیذ ٍ وذ ّبی تبثغ دٍم سا ث‬homeController ِ‫ ثِ صفح‬.‫ سا ووی دستىبسی وشد‬create ‫اؼالػبت سا اًجبم دّذ ثبیذ تبثغ دٍم‬ .‫ضىل صیش تغییش دّیذ‬ public ActionResult Create([Bind (Exclude="id")]Movy mtc) { try { // TODO: Add insert logic here test.Movies.InsertOnSubmit(mtc); test.SubmitChanges(); return RedirectToAction("Index"); } catch { return View(); } }

‫ هطبّذُ هی وٌیذ وِ اؼالػبت ٍسٍدی دس ثبًه ثجت‬. ‫ سا ولیه وٌیذ‬create ِ‫دٍثبسُ ثشًبهِ سا اجشا وٌیذ ٍ اؼالػبتی سا ٍاسد وشدُ ٍ دوو‬ .‫ضذُ است‬ : )Delete( ‫ حذف اطالعات درٍى جدٍل‬- 3 ِ‫ثِ صفح‬.‫ لشاس دّین وِ ثب ولیه ثش سٍی آى اؼالػبت سؽش هَسد ًظش اص جذٍل سا پبن ًوبیین‬index ِ‫هی خَاّین لیٌىی سا دس صفح‬ ‫ ٍوذ صیش سا ثِ آى اظبفِ وٌیذ‬. ‫ ثشٍیذ‬home ِ‫ دس پَض‬index.aspx <%= Html.ActionLink("Delete", "Delete", new { id= item.id }) %> |

‫ هی‬index ِ‫ وذ ّبی صیش وذّبی اصالح ضذُ صفح‬.‫ اظبفِ هی ضَد‬index ِ‫ ثِ صفح‬Delete ‫ثب اظبفِ وشدى ایي وذ یه لیٌه ثٌبم‬ ‫ثبضذ‬ <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<movieapp.Models.Table1>>" %> <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> Index </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> <h2>Index</h2> <table> <tr> <th></th> <th> ‫کد‬ </th> <th> ‫نام‬ </th> <th> ‫خانوادگی نام‬ </th> <th> ‫تلفن شماره‬ </th> www.ParsBook.org


14 </tr> <% foreach (var item in Model) { %> <tr> <td> <%= <%= </td> <td> <%= </td> <td> <%= </td> <td> <%= </td> <td> <%= </td> </tr>

Html.ActionLink("Edit", "Edit", new { id= item.id }) %> | Html.ActionLink("Delete", "Delete", new { id= item.id }) %> | Html.Encode(item.id) %> Html.Encode(item.name) %> Html.Encode(item.family) %> Html.Encode(item.tel) %>

<% } %> </table> <p> <%= Html.ActionLink("Create New", "Create") %> </p> </asp:Content>

‫ یؼٌی‬mvc

‫حبل ثِ صفحِ اصلی دس‬.‫ وشدُ ٍ هی ثٌذین‬save

‫آى سا‬. ‫ دیگش تىویل ضذُ است‬index.aspx ِ‫خَة صفح‬

: ‫) سا ثِ اًتْبی وذّب اظبفِ هی وٌین‬Delete ‫ تبثغ صیش(تبثغ‬. ‫ هی سٍین‬homecontroller.cs public ActionResult Delete(int id) { var movieToDelete = test.Movies.First(m => m.ID == id); // Delete test.Movies.DeleteOnSubmit(movieToDelete); test.SubmitChanges(); // Show Index view return RedirectToAction("Index"); }

‫ سا‬id ‫ ّن ثب تَجِ ثِ آى‬delete ‫ اسسبل هی وٌذ ٍ تبثغ‬delete ‫ آى سؽش سا ثِ تبثغ‬id ‫ همذاس‬delete ِ‫وبسثش ثب ولیه ثش سٍی دوو‬ .‫هْن تشیي خػ دس وذ ّبی ثبال وذ صیش هی ثبضذ‬.‫حزف هی ًوبیذ‬ var movieToDelete = test.Table1s.First(m => m.id == id);

ُ‫ آى ولیه ضذُ است هی ثبضذ وِ ایي همذاس سا دسٍى هتغیشی رخیش‬delete ‫ سؽشی وِ ثش سٍی لیٌه‬id ‫ٍظیفِ ایي خػ وذ گشفتٌي‬ ‫دس آخشیي خػ ایي‬. ‫ دس خػ ثؼذ ّن تغییشات دس ثبًه اًجبم هی ضَد‬.‫وشدُ ٍ دس خػ ثؼذ ثب تَجِ ثِ آى همذاس سؽشی سا حزف هی ًوبیذ‬ .‫ ثِ ّویي سبدگی فشهبى حزف ًیض دس صفحِ ایجبد ضذ‬.‫ ّذایت هی ضَد‬index.aspx ِ‫وذّب وبسثش دٍثبسُ ثِ صفح‬

www.ParsBook.org


15

: )Edit( ‫ ایجاد صفحِ ای تزای تزٍس رساًی‬- 4 ِ‫ دسٍى ایي فبیل دٍ تبثغ ث‬. ‫ سا ثبص هی وٌین‬homecontroller ‫ فبیل‬. ‫آخشیي صفحِ ّن هشثَغ ثِ تغییشات اؼالػبت ثبًه هی ثبضذ‬ ‫) ساست ولیه‬Edit ( ‫ ثش سٍی ًبم تبثغ‬.‫ هی ثبضذ‬edit ِ‫ ّوبًؽَس وِ لجآل گفتین تبثغ اٍل هشثَغ ثِ ظبّش صفح‬. ‫ دیذُ هی ضَد‬Edit ‫ًبم‬ view

‫ همذاس‬، ‫ تٌْب همذاسی سا وِ تغییش هی دّین‬Add view ِ‫ دس صفح‬. ‫ سا اًتخبة هی وٌین‬Add View… ٌِ‫وشدُ ٍ گضی‬

‫ وذّبی ایي صفحِ ثِ ضىل صیش است وِ ثْتش است‬. ‫ سا هی فطبسین‬Add ِ‫ تغییش هی ّین ٍ دوو‬Edit ِ‫همذاس آًشا ث‬. ‫هی ثبضذ‬cintent . ‫همذاسی سا وِ ثب صهیٌِ صسد ًطبى هی دّین سا حزف ًوبیین چشا وِ وبسثشدی ًذاسد‬ <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<movieapp.Models.Table1>" %> <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">Edit </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> <h2>Edit</h2> <%= Html.ValidationSummary("Edit was unsuccessful. Please correct the errors and try again.") %> <% using (Html.BeginForm()) {%> <fieldset> <legend>Fields</legend> <p> <label for="id">id:</label> <%= Html.TextBox("id", Model.id) %> <%= Html.ValidationMessage("id", "*") %> </p> <p> <label for="name">name:</label> <%= Html.TextBox("name", Model.name) %> <%= Html.ValidationMessage("name", "*") %> </p> <p> <label for="family">family:</label> <%= Html.TextBox("family", Model.family) %> <%= Html.ValidationMessage("family", "*") %> </p> <p> <label for="tel">tel:</label> <%= Html.TextBox("tel", Model.tel) %> <%= Html.ValidationMessage("tel", "*") %> </p> <p> <input type="submit" value="Save" /> </p> </fieldset> <% } %><div> <%=Html.ActionLink("Back to List", "Index") %> </div></asp:Content>

www.ParsBook.org


16

edit ‫ تبثغ‬. ‫ هی سٍین‬homecontroller ‫ دٍثبسُ ثِ صفحِ هؼشٍف‬.‫ ّن ثشاحتی ٍ ثب فطبس چٌذ ولیه سبختِ ضذ‬edit ِ‫ظبّش صفح‬ :‫اٍل ثبیذ ثِ ضىل صیش ثبضذ‬ public ActionResult Edit(int id) { var movieToDelete = test.Movies.First(m => m.id == id); ViewData.Model = movieToDelete; return View(); }

‫ پس اص اى‬. ‫ آى سؽش ولیه هی وٌین‬edit ِ‫ سؽشی خَاّذ ضذ وِ ثش سٍی دوو‬id ‫ دس ایي وذّب حبٍی‬movieToDelete ‫هتغیش‬ edit.aspx ِ‫ لشاس هی دّذ ٍ سپس وبسثشسا ثِ صفح‬edit.aspx ِ‫ اًتخبة ضذُ سا دسٍى فیلذّبی صفح‬id ‫اؼالػبت سؽش هتٌبظش ثب‬ .‫ّذایت هی وٌذ‬ ‫ تبثغ دٍم‬homecontroller ِ‫ دس صفح‬. ‫ ػولیبتی وٌذ‬edit.aspx ِ‫ سا دس صفح‬save ِ‫حبال ثبیذ وذّبیی سا ٍاسد ًوبیین تب دوو‬ :‫ سا ثِ صَست صیش دسهی آٍسین‬Edit public ActionResult Edit(FormCollection form) { try { var id= Int32.Parse(form["id"]); var movieToUpdate = test .Movies.First(m => m.id == id); TryUpdateModel(movieToUpdate,new string[]{"name","family","TEL"},form.ToValueProvider());

test.SubmitChanges(); return RedirectToAction("Index"); return View(movieToUpdate); } catch { return View(); } }

‫ هی تَاى صفحبتی سبخت وِ ثشًبهِ ًَیس ًیبص ثِ ًَضتي وذ ّبی غیش‬mvc ‫ دیذیذ وِ ثب تىٌَلَصی‬. ‫ ّن سبختِ ضذ‬edit ِ‫صفح‬ .‫ظشٍسی ًذاسد‬ : ‫ ثصَست صیش خَاّذ ضذ‬homecontroller ِ‫ثب اًجبم وبسّبی فَق وذّبی صفح‬ using using using using using using using

System; System.Collections.Generic; System.Linq; System.Web; System.Web.Mvc; System.Web.Mvc.Ajax; MvcApp.Models;

namespace MvcApp.Controllers { public class homeController : Controller { // // GET: /home/ private linq_classDataContext test = new linq_classDataContext(); public ActionResult Index() { return View(test.Movies.ToList()); www.ParsBook.org


17 } // // GET: /home/Details/5 public ActionResult Details(int id) { return View(); } // // GET: /home/Create public ActionResult Create() { return View(); } // // POST: /home/Create [AcceptVerbs(HttpVerbs.Post)] public ActionResult Create([Bind (Exclude="id")]Movy mtc) { try { // TODO: Add insert logic here test.Movies.InsertOnSubmit(mtc); test.SubmitChanges(); return RedirectToAction("Index"); } catch { return View(); } } // // GET: /home/Edit/5 public ActionResult Edit(int id) { var mtu = test.Movies.First(m => m.ID == id); ViewData.Model = mtu; return View(); } // // POST: /home/Edit/5 [AcceptVerbs(HttpVerbs.Post)] public ActionResult Edit(FormCollection form) { try { // TODO: Add update logic here var id = Int32.Parse(form["id"]); var movieToUpdate = test.Movies.First(m => m.ID == id); // Deserialize (Include white list!) TryUpdateModel(movieToUpdate, new string[] { "name", "family", "TEL" }, form.ToValueProvider()); test.SubmitChanges(); return RedirectToAction("Index"); // Otherwise, reshow form

www.ParsBook.org


18 return View(movieToUpdate); } catch { return View(); } } public ActionResult Delete(int id) { var movieToDelete = test.Movies.First(m => m.ID == id); // Delete test.Movies.DeleteOnSubmit(movieToDelete); test.SubmitChanges(); // Show Index view return RedirectToAction("Index"); } } }

‫پایاى‬

www. softprojects.org ، www.asp.net : ‫هٌاتع‬

. ‫هشاجؼِ ًوبییذ‬ ‫هىبتجِ ًوبییذ‬

http://itn88.blogfa.com/post-258.aspx ‫جْت دسیبفت فبیل ّبی ثشًبهِ ٍ ّوچٌیي فیلن آهَصضی ایي فبیل ثِ آدسس‬

http://itn88.blogfa.com/post-258.aspx

‫ ٍ یب‬aghili65@gmail.com ‫لؽفآ ًَالط ٍ ایشادات ایي وتبة سا ثب آدسس‬ .

‫تا تشکز اس شوا‬

. ‫لطفآ اگز هطالة ایي کتاب تِ شوا کوکی کزدُ است هي ٍ پدر هزحَهن را اس دعای خیزتاى هحزٍم ًفزهایید‬ ‫جهت سالهتی ٍ فزج اهام سهاى صلَات‬

‫ هطْذ همذس‬- ‫اثَالفعل ػمیلی وَّستبًی‬ 1389 ‫ثْبس‬

www.ParsBook.org


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.