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