Kuongeza darasa la mfano. Muundo wa Muundo wa Data

Katika sehemu nyingine ya sura hii, tutaangalia vipengele vichache vya msingi vya MVC kwa kuunda programu rahisi ya kuingiza data. Tutaharakisha mambo kidogo katika sehemu hii. Lengo letu ni kuonyesha MVC kwa vitendo, kwa hivyo tutaacha baadhi ya maelezo ya jinsi yote yanavyofanya kazi. Lakini usijali, tutashughulikia mada hizi kwa undani katika sura zijazo.

Wacha tuchore mpango

Hebu fikiria kwamba rafiki ameamua kuandaa karamu ya Mkesha wa Mwaka Mpya, na kwamba ametuomba tutengeneze tovuti ambayo itawaruhusu marafiki na marafiki zake kukubali mwaliko wa RSVP (saini kwenye mwaliko inayomwalika mpokeaji kwenye RSVP kuhudhuria. Tukio). Tovuti inapaswa kuwa na vitu vifuatavyo:

  • Ukurasa wa nyumbani ambapo maelezo ya chama yanaonyeshwa
  • Fomu ambayo inaweza kutumika kwa RSVP
  • Kuthibitisha fomu ya RSVP ambayo itaonyesha ukurasa wa asante
  • Imekamilika na kutumwa majibu ya ridhaa ya kushiriki katika chama

Katika sehemu zifuatazo, tutajenga kwenye mradi wa MVC tuliounda mwanzoni mwa sura na kuongeza uwezo huu. Tunaweza kufanya kipengee cha kwanza kutoka kwenye orodha kwa kutumia ujuzi ambao tulipokea hapo awali, yaani, tunaweza kuongeza HTML kwa maoni yetu yaliyopo, ambapo itatolewa. maelezo ya kina kuhusu chama. B inaonyesha nyongeza tulizofanya kwenye faili ya Views/Home/Index.cshtml.

Orodha ya 2-7: Inaonyesha maelezo ya chama
@( Mpangilio = null; ) Kielezo

Tutakuwa na karamu ya kusisimua.
(Ya kufanya: iuze vizuri zaidi. Ongeza picha au kitu.)



Tuko kwenye njia sahihi. Ukizindua programu, utaona maelezo kuhusu sherehe, au tuseme kishikilia nafasi kwa maelezo hayo, lakini utapata wazo. Mfano unaonyeshwa katika.

Kielelezo 2-12: Kuongeza Mwonekano

Muundo wa Muundo wa Data

Katika MVC M inasimama kwa mfano, na hii ndiyo sehemu muhimu zaidi ya programu. Mfano ni uwakilishi wa vitu halisi, taratibu na sheria zinazofafanua kitu, kinachojulikana kama kikoa, maombi yetu. Mfano ambao mara nyingi hujulikana kama mfano wa kikoa, ina vitu vya C # (inayojulikana kama vitu vya kikoa) ambazo zinaunda kiini cha matumizi yetu, na mbinu zinazoturuhusu kuzibadilisha. Mionekano na vidhibiti hufichua kikoa kwa wateja kwa njia thabiti, na programu ya MVC iliyoundwa vizuri huanza na muundo ulioundwa vizuri, ambao hutumika kama kitovu tunapoongeza vidhibiti na mitazamo.

Hatuhitaji muundo changamano wa programu ya PartyInvites, lakini tutaunda darasa moja la kikoa ambalo tutaliita GuestResponse. Huluki hii itawajibika kwa kuhifadhi, kuthibitisha na kuthibitisha RSVP.

Kuongeza Darasa la Mfano

Kwa mkataba wa MVC, madarasa yanayounda mfano huwekwa kwenye folda ya Models. Bofya bonyeza kulia kipanya juu ya Miundo kwenye dirisha la Kichunguzi cha Suluhisho na uchague Ongeza ikifuatiwa na Hatari kutoka kwa menyu ibukizi. Taja faili GuestResponse.cs na ubofye kitufe cha Ongeza ili kuunda darasa. Badilisha yaliyomo kwenye darasa kulingana na.

Ushauri

Ikiwa huna kipengee cha menyu ya Daraja, basi huenda uliacha kitatuzi kikiendelea. Studio ya Visual. Visual Studio inapunguza mabadiliko unayoweza kufanya kwa mradi wakati programu inaendeshwa.

Orodha ya 2-8: Darasa la kikoa cha Majibu ya Mgeni
namespace PartyInvites.Models ( class ya umma Response GuestResponse ( public string Jina ( get; set; ) public string Barua pepe ( get; set; ) public string Simu ( get; set; ) public bool? WillAttend ( get; set; ) ) )

Ushauri

Labda umegundua kuwa mali ya WillAttend ni ya aina ya bool? (Isiyoweza kubatilika ), yaani, inaweza kuwa kweli, uongo au batili. Tutaelezea hili katika sehemu ya "Kuongeza Uthibitishaji" baadaye katika sura hii.

Rejeleo la mbinu ya kitendo

Mojawapo ya madhumuni ya maombi yetu ni kujumuisha fomu ya RSVP, kwa hivyo tunahitaji kuongeza kiungo kwayo kutoka kwa mwonekano wetu wa Index.cshtml, kama inavyoonyeshwa katika .

Orodha ya 2-9: Inaongeza kiungo cha fomu ya RSVP
@( Mpangilio = null; ) Kielezo
@ViewBag.Greeting World (kutoka kwa mtazamo)

Tutakuwa na karamu ya kusisimua.
(Ya kufanya: iuze vizuri zaidi. Ongeza picha au kitu.)

@Html.ActionLink("RSVP Sasa", "RsvpForm")


Html.ActionLink ni mbinu msaidizi HTML. Mfumo wa MVC umeundwa kwa seti ya mbinu za usaidizi zilizojengewa ndani ambazo zinafaa usindikaji wa HTML viungo, ingizo la maandishi, visanduku vya kuteua, chaguo, na hata vidhibiti vya watumiaji. Njia ya ActionLink inachukua vigezo viwili: ya kwanza ni maandishi ya kuonyesha kwenye kiungo, na ya pili ni hatua ya kufanya mtumiaji anapobofya kiungo. Tutaelezea msaada Mbinu za HTML katika sura ya 19-21. Kinachoonyeshwa ni kiungo tulichoongeza.

Kielelezo 2-13: Ongeza kiungo cha kutazama

Ukielea juu ya kiungo katika kivinjari chako, utaona kwamba kiungo kinaelekeza kwa http://yourserver/Home/RsvpForm. Mbinu ya Html.ActionLink ilikagua usanidi wa URL ya programu yetu na kubaini kuwa /Home/RsvpForm ndiyo URL ya kitendo cha HomeController's RsvpForm. Kumbuka kuwa tofauti na programu za jadi za ASP.NET, URL za MVC hazilingani na faili halisi. Kila mbinu ya kitendo ina URL yake, na MVC hutumia mfumo wa uelekezaji wa ASP.NET kutafsiri URL hizi kuwa vitendo.

Kuunda Mbinu ya Kitendo

Ukibofya kiungo utaona hitilafu 404 Haipatikani. Hii ni kwa sababu bado hatujaunda mbinu ya kitendo inayolingana na URL ya /Home/RsvpForm. Tutafanya hivi kwa kuongeza mbinu ya RsvpForm kwenye darasa letu la Kidhibiti cha Nyumbani, kama inavyoonyeshwa katika .

Orodha ya 2-10: Kuongeza mbinu mpya ya kitendo kwa kidhibiti
kutumia Mfumo; kwa kutumia System.Collections.Generic; kwa kutumia System.Linq; kwa kutumia System.Web; kwa kutumia System.Web.Mvc; nafasi ya jina PartyInvites.Controllers ( darasa la umma la HomeController: Controller ( public ViewResult Index() ( int hour = DateTime.Now.Hour; ViewBag.Greeting = saa< 12 ? "Good Morning" : "Good Afternoon"; return View(); } Public ViewResult RsvpForm() { kurudi Tazama (); } } }

Kuongeza Mwonekano Ulioandikwa Kwa Nguvu

Tunataka kuongeza mtazamo kwa mbinu yetu ya hatua ya RsvpForm, lakini tutafanya jambo zaidi: yaani, kuunda. imeandikwa kwa nguvu utendaji. Mionekano iliyochapwa kwa nguvu imeundwa kushughulikia aina mahususi ya kikoa. Tukibainisha aina tunayotaka kufanya kazi nayo (Majibu ya Mgeni katika mfano huu), MVC hutoa vipengele vya ziada ili kurahisisha mambo.

Tahadhari

Hakikisha mradi wako wa MVC umekusanywa kabla ya kuanza. Ikiwa umeunda darasa la Majibu ya Wageni lakini hukuikusanya, MVC haitaweza kuunda mwonekano ulioandikwa kwa nguvu kwa wa aina hii. Ili kukusanya programu, chagua Unda Suluhisho kutoka kwa menyu ya Kuunda Studio inayoonekana.

Bofya kulia ndani ya njia ya kitendo cha RsvpForm na uchague Ongeza Mwonekano kutoka kwa menyu ibukizi ili kuunda mwonekano. Katika kidirisha cha Ongeza Mwonekano, angalia kisanduku tiki cha Unda mwonekano ulioandikwa kwa nguvu na uchague chaguo la GuestResponse kutoka kwenye menyu kunjuzi. Batilisha uteuzi Tumia mpangilio au ukurasa mkuu na uhakikishe kuwa Kiwembe kimechaguliwa kama injini ya uwasilishaji na chaguo la kiolezo cha Scaffold kimewekwa kuwa Tupu kama inavyoonyeshwa kwenye .

Kielelezo 2-14: Kuongeza Mwonekano Ulioandikwa Kwa Nguvu

Bofya kitufe cha Ongeza na Visual Studio itaunda faili mpya iliyopewa jina la RvspForm.cshtml na uifungue kwa uhariri. Unaweza kuona maudhui asili katika. Kama umeona, hii ni tofauti faili ya HTML, lakini ina usemi wa Razor @model. Utaona baada ya muda mfupi kuwa huu ndio ufunguo wa mwonekano ulioandikwa kwa nguvu na uwezo unaotoa.

Orodha ya 2-12: Maudhui ya awali ya faili ya RsvpForm.cshtml
@model PartyInvites.Models.GuestResponse@( Mpangilio = null; ) Fomu ya Rsvp


Kujenga fomu

Sasa kwa kuwa tumeunda mwonekano uliochapishwa kwa nguvu, tunaweza kuunda yaliyomo kwenye RsvpForm.cshtml ili kuigeuza kuwa fomu ya HTML ya kuhariri vipengee vya GuestResponse. Badilisha mwonekano ulingane .

Orodha ya 2-13: Kuunda Uwasilishaji wa Fomu
Fomu ya Rsvp @kutumia(Html.BeginForm()) {

Jina lako: @Html.TextBoxFor(x => x.Name)

Barua pepe yako: @Html.TextBoxFor(x => x.Email)

Simu yako: @Html.TextBoxFor(x => x.Simu)

Je, utahudhuria? @Html.DropDownListFor(x => x.WillAttend, mpya ( new SelectListItem() (Nakala = "Ndiyo, nitakuwepo", Value = bool.TrueString), new SelectListItem() (Nakala = "Hapana, siwezi"kuja", Thamani = bool.FalseString) ), "Chagua chaguo")

}

Kwa kila kipengee cha darasa la kielelezo la GuestResponse, tunatumia mbinu ya HTML ya kisaidizi ili kutoa kidhibiti kinachofaa cha ingizo la HTML. Njia hizi hukuruhusu kuchagua mali ambayo kipengee cha kuingiza ni cha kutumia usemi wa lambda, kama hii:

@Html.TextBoxFor(x => x.Simu)

Mbinu ya msaidizi ya HTML TextBoxFor hutengeneza HTML kwa kipengele cha ingizo, huweka kigezo cha aina kwenye maandishi na kuweka kitambulisho na sifa za jina kwa Phone , jina la sifa ya darasa iliyochaguliwa ya kikoa, kama hii:

Kipengele hiki muhimu hufanya kazi kwa sababu mwonekano wetu wa RsvpForm umechapishwa kwa nguvu, na tumeiambia MVC kuwa GuestResponse ndiyo aina tunayotaka mwonekano huo ushughulikie, ili wasaidizi wa HTML waweze kubaini ni aina gani ya data tunayotaka kusoma kwa kutumia usemi @model. .

Usijali ikiwa haujazoea misemo ya C # lambda. Tutazifunika katika Sura ya 4, lakini kama njia mbadala ya misemo ya lambda, unaweza kurejelea jina la aina ya mali kama kamba, kama hii:

@Html.TextBox("Barua pepe")

Tumegundua kuwa mbinu ya usemi wa lambda inatusaidia kuepuka makosa ya kuchapa katika aina ya jina la sifa kwa sababu Visual Studio IntelliSense hujitokeza na huturuhusu kuchagua sifa kiotomatiki, kama inavyoonyeshwa katika .

Kielelezo 2-15: Visual Studio IntelliSense kwa misemo ya lambda katika wasaidizi wa HTML

Mbinu nyingine inayofaa ya usaidizi ni Html.BeginForm, ambayo hutengeneza kipengee cha fomu ya HTML kilichosanidiwa kupitisha data kwenye mbinu ya kitendo. Kwa kuwa hatukupitisha vigezo vyovyote kwa njia ya msaidizi, inadhania kwamba tunataka kurudisha URL sawa. Ujanja safi ni kuifunga kwa C # kwa kutumia taarifa, kama hii:

Kwa kawaida, inapotumiwa kwa njia hii, kauli ya kutumia huhakikisha kuwa kitu kinatupwa kinapotoka nje ya upeo. Inatumika sana kuunganisha kwenye hifadhidata, kwa mfano kuhakikisha kuwa inafungwa mara tu hoja imekamilika. (Maombi haya neno kuu kutumia ni tofauti kwa kuwa inahusu wigo wa darasa).

Badala ya kufuta kitu, msaidizi wa HtmlBeginForm hufunga kipengee cha fomu ya HTML kinapotoka nje ya upeo. Hii inamaanisha kuwa mbinu ya msaidizi ya Html.BeginForm huunda sehemu zote mbili za kipengele cha fomu, kama hii:

Usijali ikiwa haujazoea kufuta vitu kwenye C #. Lengo letu kwa sasa ni kuonyesha jinsi ya kuunda fomu kwa kutumia mbinu ya msaidizi wa HTML. Unaweza kuona fomu katika mwonekano wa RsvpForm unapozindua programu na ubofye kiungo cha RSVP Sasa. Matokeo yanaonyeshwa.

Kielelezo 2-16: Mwonekano wa RspvForm

Kumbuka

Hiki si kitabu kuhusu CSS au muundo wa wavuti. Kwa sehemu kubwa, tutakuwa tunaunda mifano ambayo mwonekano wake unaweza kuelezewa kuwa umepitwa na wakati (ingawa tunapendelea neno hilo classical, ambayo anahisi kupuuzwa kidogo). Mionekano ya MVC huzalisha HTML safi na rahisi sana, na una udhibiti kamili wa mpangilio wa vipengele na madarasa vinavyomilikiwa, kwa hivyo hutakuwa na matatizo yoyote ya kutumia zana za kubuni au violezo vilivyotengenezwa tayari kufanya mradi wako wa MVC uonekane mzuri.

Usindikaji wa Fomu

Hatujawaambia MVC tunachotaka kufanya fomu inapowasilishwa kwa seva. Kwa sasa, kubofya kitufe cha Wasilisha RSVP huondoa tu maadili yoyote uliyoweka kwenye fomu. Hii ni kwa sababu fomu inarejeshwa kwa mbinu ya kitendo cha RsvpForm katika kidhibiti cha Nyumbani, ambacho huambia MVC kuchakata mwonekano tena.

Kumbuka

Unaweza kushangazwa na ukweli kwamba pembejeo hupotea wakati mtazamo unachakatwa tena. Ikiwa ndivyo, basi labda umetengeneza programu kwa kutumia Fomu za Wavuti za ASP.NET, ambazo huhifadhi data kiotomatiki katika hali hii. Tutakuonyesha jinsi ya kupata matokeo sawa na MVC hivi karibuni.

Ili kupokea na kuchakata data ya fomu iliyowasilishwa, tutafanya kitu kizuri na kizuri. Tutaongeza njia ya pili ya hatua ya RsvpForm kuunda yafuatayo:

  • Njia inayojibu maombi ya HTTP GET: Ombi la GET ndilo ambalo kivinjari hushughulikia kila baada ya kubofya kiungo. Chaguo hili litawajibika kwa kuonyesha fomu ya awali tupu mara ya kwanza mtu anapotembelea /Home/RsvpForm .
  • Njia inayojibu maombi ya HTTP POST: Kwa chaguomsingi, fomu zinazochakatwa kwa kutumia Html.BeginForm() hutumwa kama ombi la POST na kivinjari. Chaguo hili litakuwa na jukumu la kupokea data iliyowasilishwa na kuamua nini cha kufanya nayo.

Kushughulikia maombi ya GET na POST kwa mbinu tofauti za C# husaidia kuweka msimbo wetu kuwa safi, kwa kuwa mbinu zote mbili zina majukumu tofauti. Mbinu zote mbili za utekelezaji zinaitwa na URL sawa, lakini MVC inahakikisha kuwa mbinu inayofaa inaitwa kulingana na ikiwa tunashughulikia ombi la GET au POST. B inaonyesha mabadiliko tunayohitaji kufanya kwa darasa la HomeController.

Orodha ya 2-14: Inaongeza mbinu ya kufanya ili kusaidia maombi ya POST
kutumia Mfumo; kwa kutumia System.Collections.Generic; kwa kutumia System.Linq; kwa kutumia System.Web; kwa kutumia System.Web.Mvc; kwa kutumia PartyInvites.Models; nafasi ya jina PartyInvites.Controllers ( darasa la umma la HomeController: Controller ( public ViewResult Index() ( int hour = DateTime.Now.Hour; ViewBag.Greeting = saa< 12 ? "Good Morning" : "Good Afternoon"; return View(); } public ViewResult RsvpForm() ( return View(); ) Public ViewResult RsvpForm(MgeniJibu la mgeni) { // TODO: Jibu la barua pepe kwa mratibu wa chama return View("Asante", mgeniJibu); } } }

Tumeongeza sifa ya HttpGet kwa mbinu yetu iliyopo ya kufanya kazi ya RsvpForm. Hii inaambia MVC kuwa mbinu hii inapaswa kutumika kwa maombi ya GET pekee. Kisha tukaongeza upakiaji mwingi wa RsvpForm ambao huchukua kigezo cha GuestResponse na kutumia sifa ya HttpPost. Sifa hiyo inaambia MVC hiyo mbinu mpya itashughulikia maombi ya POST. Kumbuka kuwa tulileta pia nafasi ya majina ya PartyInvites.Models - kwa njia hii tunaweza kurejelea aina ya kielelezo cha GuestResponse bila kutaja jina la darasa. Tutashughulikia jinsi programu jalizi za uorodheshaji wetu zinavyofanya kazi katika sehemu zifuatazo.

Kwa kutumia Model Data Binding

Lahaja ya kwanza ya mbinu ya upakiaji ya RsvpForm inashughulikia mwonekano sawa na hapo awali. Inazalisha fomu iliyoonyeshwa katika . Chaguo la pili la njia iliyopakiwa ni ya kufurahisha zaidi kwa sababu ya kigezo, lakini ikizingatiwa kuwa njia ya kitendo itaitwa kujibu ombi la HTTP POST, na kwamba Jibu la Mgeni ni aina ya darasa la C #, zinaunganishwaje?

Jibu ni mfano wa kuunganisha data– Utendaji muhimu sana wa MVC ambapo data ya ingizo huchanganuliwa na jozi za ufunguo/thamani katika ombi la HTTP hutumika kujaza sifa za aina ya kikoa. Utaratibu huu ni kinyume cha kutumia wasaidizi wa HTML; Huu ndio wakati, wakati wa kuunda data ya fomu ya kutuma kwa mteja, tulizalisha vipengele vya ingizo vya HTML, ambapo thamani za kitambulisho na sifa za jina zilipatikana kutoka kwa majina ya sifa za darasa la mfano.

Kinyume chake, kwa kuunganisha data ya kielelezo, majina ya vipengee vya ingizo hutumiwa kubainisha thamani za sifa katika mfano wa darasa la mfano, ambazo hupitishwa kwa mbinu yetu ya kitendo iliyowezeshwa na POST.

Muundo wa uwakilishi wa data ni kipengele chenye nguvu na kinachoweza kugeuzwa kukufaa ambacho huondoa usumbufu wa kufanya kazi moja kwa moja na maombi ya HTTP na huturuhusu kufanya kazi na vipengee vya C# badala ya kushughulikia maadili ya Request.Form na Request.QueryString. Kipengee cha Majibu ya Mgeni ambacho hupitishwa kama kigezo kwa mbinu yetu ya kutenda huwekwa kiotomatiki na data kutoka sehemu za fomu. Tutaangalia modeli ya uwakilishi wa data kwa undani, ikijumuisha jinsi inavyoweza kubinafsishwa, katika Sura ya 22.

Kushughulikia Maoni Mengine

Lahaja ya pili ya upakiaji wa mbinu ya kitendo cha RsvpForm pia inaonyesha jinsi tunavyoweza kuwaambia MVC kuchakata mwonekano mahususi, badala ya mwonekano chaguomsingi, kwa kujibu ombi. Hapa kuna usemi unaolingana:

return View("Asante", mgeniJibu);

Simu hii kwa njia ya Tazama huiambia MVC kutafuta na kuchakata mwonekano, unaoitwa Thanks , na kupitisha kitu chetu cha Majibu ya Mgeni kwenye mwonekano. Ili kuunda mwonekano tuliobainisha, bofya kulia ndani ya mojawapo ya mbinu za Kidhibiti cha Nyumbani na uchague Ongeza Mwonekano kutoka kwenye menyu ibukizi. Weka jina la mwonekano kuwa Asante kama inavyoonyeshwa kwenye .

Kielelezo 2-17: Kuongeza Mtazamo wa Shukrani

Tutaunda mwonekano mwingine ulioandikwa kwa nguvu, kwa hivyo chagua kisanduku hicho kwenye kisanduku cha mazungumzo cha Ongeza Mwonekano. Darasa la data tunalochagua kwa mwonekano huu lazima lilingane na darasa tulilopitisha kwenye mwonekano kwa kutumia mbinu ya Tazama. Kwa hivyo hakikisha kuwa GuestResponse imechaguliwa kwenye menyu kunjuzi. Hakikisha kuwa Tumia mpangilio au ukurasa mkuu haujachaguliwa, Injini ya Mtazamo imewekwa kuwa Nyembe, na kiolezo cha Scaffold kimewekwa kuwa Tupu.

Bofya kitufe cha Ongeza ili kuunda mwonekano mpya. Kwa kuwa mwonekano unahusishwa na kidhibiti cha Nyumbani, MVC itaunda mwonekano kama ~/Views/Home/Thanks.cshtml . Badilisha mwonekano mpya ulingane: Tumeangazia kinachohitaji kuongezwa.

Orodha ya 2-15: Tazama Asante
@model PartyInvites.Models.GuestResponse @( Layout = null; ) Asante

Asante, @Model.Name!

@if (Model.WillAttend == kweli) { @:Ni vizuri kwamba unakuja. Vinywaji tayari viko kwenye jokofu! } mwingine { @:Samahani kusikia kuwa huwezi, lakini asante kwa kutufahamisha. }


Mwonekano wa Shukrani hutumia Razor kuonyesha maudhui kulingana na thamani ya kipengele cha GuestResponse ambacho tulipitisha kwenye mbinu ya Tazama katika mbinu ya kitendo cha RsvpForm. Opereta ya Razor @model inabainisha aina ya kikoa ambacho mwonekano unahusishwa nao. Ili kufikia thamani ya mali ya kitu cha kikoa, tunatumia Model. Jina la Mali. Kwa mfano, ili kupata thamani ya mali ya Jina, tunaita Model.Name. Usijali ikiwa huelewi sintaksia ya Kiwembe, tutaieleza kwa kina katika Sura ya 5.

Kwa kuwa sasa tumeunda mwonekano wa Shukrani, tuna mfano wa msingi wa kufanya kazi wa kuchakata fomu kwa kutumia MVC.

Zindua programu katika Visual Studio, bofya kiungo cha RSVP Sasa, ongeza data kwenye fomu na ubofye kitufe cha Wasilisha RSVP. Utaona matokeo yakionyeshwa (ingawa inaweza kutofautiana ikiwa jina lako si Joe na ulisema hutaweza kuhudhuria).

Kielelezo 2-18: Mwonekano uliochakatwa Asante

Kuongeza Uthibitishaji

Sasa tuko tayari kuongeza uthibitishaji kwa maombi yetu. Ikiwa hatukufanya hivi, watumiaji wetu wanaweza kuingiza data isiyo na maana au hata kuwasilisha fomu tupu.

Katika programu ya MVC, uthibitishaji hutumiwa kwa muundo wa kikoa badala ya kiolesura cha mtumiaji. Hii ina maana kwamba tunafafanua vigezo vyetu vya uthibitishaji katika sehemu moja, na vinatumika popote katika darasa la mfano linalotumika. ASP.NET MVC hutumia sheria za uthibitishaji zilizofafanuliwa na sifa katika nafasi ya majina ya System.ComponentModel.DataAnnotations. Inaonyesha jinsi sifa hizi zinavyoweza kutumika kwa darasa la kielelezo la GuestResponse.

Orodha ya 2-16: Inatuma uthibitishaji kwa darasa la mfano la Majibu ya Wageni
kwa kutumia System.ComponentModel.DataAnnotations; namespace PartyInvites.Models ( darasa la umma Response Guest ( Jina la kamba ya umma ( pata; weka; ) Barua pepe ya kamba ya umma ( pata; weka; ) simu ya kamba ya umma ( pata; weka; ) upuuzi wa umma? WillAttend(pata; weka; ) ))

Sheria za uthibitishaji zimeonyeshwa kwa herufi nzito. MVC hugundua sifa kiotomatiki na kuzitumia kuthibitisha data wakati wa uwasilishaji wa muundo wa data. Kumbuka kuwa tulileta nafasi ya majina iliyo na sheria za uthibitishaji, kwa hivyo tunaweza kuzirejelea bila kutaja majina yao.

Ushauri

Kama ilivyoonyeshwa hapo awali, tulitumia aina ya bool? kwa mali ya WillAttend, kwa hivyo tuliweza kutumia sifa Inayohitajika ya uthibitishaji. Ikiwa tungetumia bool ya kawaida , thamani ambayo tungeweza kupata shukrani kwa muundo wa data inaweza tu kuwa kweli au uongo , na hatungeweza kujua kama mtumiaji alichagua thamani. Andika bool? ina maadili matatu yanayowezekana: kweli, uongo na null. thamani tupu itatumika ikiwa mtumiaji hajachagua thamani, na hii husababisha sifa Inayohitajika kuripoti hitilafu ya uthibitishaji.

Tunaweza kuangalia kama kulikuwa na hitilafu ya uthibitishaji kwa kutumia kipengele cha ModelState.IsValid katika darasa letu la kidhibiti. Inaonyesha jinsi hii inaweza kufanywa katika njia yetu ya hatua ya RsvpForm kwa usaidizi wa POST.

Orodha ya 2-17: Inatafuta makosa wakati wa uthibitishaji wa fomu
Public ViewResult RsvpForm(MgeniJibu la Mgeni) ( ikiwa (ModelState.IsValid) { // CHA KUFANYA: Jibu la barua pepe kwa mratibu wa chama rudisha Tazama("Asante", Majibu ya mgeni); } mwingine { // kuna hitilafu ya uthibitishaji kurudi Tazama (); } }

Ikiwa hakuna hitilafu ya uthibitishaji, tunawaambia MVC kushughulikia mwonekano wa Shukrani kama tulivyofanya awali. Ikiwa kuna hitilafu ya uthibitishaji, tunachakata mwonekano wa RsvpForm tena kwa kupiga njia ya Tazama bila vigezo.

Kuonyesha tu fomu kunapokuwa na hitilafu hakusaidii sana, tunahitaji kumpa mtumiaji maelezo kuhusu tatizo ni nini na kwa nini hatuwezi kukubali fomu yake. Tunafanya hivi kwa kutumia mbinu ya usaidizi ya Html.ValidationSummary kwenye mwonekano wa RsvpForm, kama inavyoonyeshwa katika .

Orodha ya 2-18: Kwa kutumia Mbinu ya Usaidizi ya Html.ValidationSummary
@model PartyInvites.Models.GuestResponse @( Layout = null; ) Fomu ya Rsvp @kutumia(Html.BeginForm()) ( @Html.ValidationSummary()

Jina lako: @Html.TextBoxFor(x => x.Name)

Barua pepe yako: @Html.TextBoxFor(x => x.Email)

Simu yako: @Html.TextBoxFor(x => x.Simu)

Je, utahudhuria? @Html.DropDownListFor(x =>

}

Ikiwa hakuna hitilafu, mbinu ya Html.ValidationSummary huunda kipengee cha orodha kilichofichwa kama kishikilia nafasi kwenye fomu. MVC hufanya kishikilia nafasi kionekane na kuongeza jumbe za hitilafu zinazofafanuliwa na sifa za uthibitishaji. Unaweza kuona jinsi inavyoonekana.

Kielelezo 2-19: Muhtasari wa Matokeo ya Uthibitishaji

Mtumiaji hataonyeshwa mwonekano wa Asante hadi sheria zote za uthibitishaji tulizotumia kwa darasa la Majibu ya Wageni zitimizwe. Kumbuka kwamba data iliyoingizwa kwenye fomu imehifadhiwa na itaonyeshwa tena wakati mwonekano unaonyeshwa kwa muhtasari wa uthibitishaji. Hii ni faida nyingine ya kuunganisha data.

Kumbuka

Iwapo umefanya kazi na Fomu za Wavuti za ASP.NET, unajua kuwa Fomu za Wavuti zina dhana ya "vidhibiti vya seva" ambavyo huhifadhi hali kwa kuweka thamani katika uga wa fomu fiche, __VIEWSTATE . Ufungaji wa data wa ASP.NET MVC haufungamani na dhana ya Fomu za Wavuti vipengele vya seva kudhibiti, kurejesha data au Tazama Jimbo. ASP.NET MVC haileti uga __VIEWSTATE uliofichwa kwenye kurasa za HTML zilizotolewa.

Inaangazia sehemu zisizo sahihi

Mbinu za usaidizi wa HTML zinazounda sehemu za maandishi, orodha kunjuzi, na vipengele vingine vina kipengele muhimu sana ambacho kinaweza kutumika pamoja na kuunganisha data. Mbinu ile ile ambayo huhifadhi ingizo la mtumiaji katika fomu pia inaweza kutumika kuangazia sehemu mahususi ambazo hazijathibitishwa.

Ikiwa mali ya darasa la mfano haijathibitishwa, njia za msaidizi wa HTML zitatoa HTML tofauti kidogo. Kama mfano, hapa kuna HTML inayotoa simu kwa Html.TextBoxFor (x => x.Name) wakati hakuna hitilafu ya uthibitishaji:

Na hii hapa HTML inayotoa simu sawa wakati mtumiaji hakutoa thamani (ambayo ni hitilafu ya uthibitishaji kwa sababu tulitumia sifa Inayohitajika ya sifa ya Jina katika darasa la mfano la GuestResponse):

class="input-validation-error" data-val="true" data-val-required="Tafadhali weka jina lako" id="Jina" jina="Jina" aina="maandishi" thamani="" />

Tumeangazia tofauti. Mbinu hii ya usaidizi imeongeza darasa linaloitwa input-validation-error . Tunaweza kuchukua faida ya kipengele hiki kwa kuunda meza Mitindo ya CSS, ambayo ina mitindo ya darasa hili na zingine zinazotumia njia anuwai za usaidizi wa HTML.

Mkataba katika miradi ya MVC ni kwamba maudhui tuli, kama vile laha za mtindo wa CSS, huwekwa kwenye folda inayoitwa Content. Tumeunda folda ya Maudhui kwa kubofya kulia kwenye mradi wa PartyInvites katika Solution Explorer na kuchagua Ongeza Folda Mpya kutoka kwenye menyu ibukizi. Tuliunda laha la mtindo kwa kubofya kulia folda ya Maudhui, kuchagua Ongeza Kipengee Kipya, na kisha kuchagua Laha ya Mtindo kwenye kisanduku cha mazungumzo cha Ongeza Kipengee Kipya. Tuliita laha yetu ya mtindo Site.css, ambalo ni jina ambalo Visual Studio hutumia wakati wa kuunda mradi kwa kutumia kiolezo cha MVC isipokuwa Tupu. Unaweza kuona yaliyomo kwenye faili ya Content/Site.css.

Orodha ya 2-19: Yaliyomo kwenye faili ya Content/Site.css
.field-validation-error (rangi: #f00;) .field-validation-valid ( display: none;).kosa-uthibitisho-pembejeo ( mpaka: 1px imara #f00; rangi ya usuli: #fee; ) .uthibitishaji- makosa-ya muhtasari (uzito wa fonti: bold; rangi: #f00;).uthibitisho-muhtasari-halali ( onyesho: hakuna;)

Ili kutumia laha hili la mtindo, tuliongeza kiungo kipya kwa sehemu ya kichwa cha mwonekano wa RsvpForm, kama inavyoonyeshwa katika . Unaongeza vipengee vya kiungo kwenye mionekano kama vile ungefanya kwenye faili tuli ya kawaida ya HTML.

Orodha ya 2-20: Kuongeza kiungo kwenye mwonekano wa RsvpForm
@model PartyInvites.Models.GuestResponse @( Layout = null; ) Fomu ya Rsvp @kutumia (Html.BeginForm()) ( @Html.ValidationSummary()

Jina lako: @Html.TextBoxFor(x => x.Name)

Barua pepe yako: @Html.TextBoxFor(x => x.Email)

Simu yako: @Html.TextBoxFor(x => x.Simu)

Je, utahudhuria? @Html.DropDownListFor(x => x.WillAttend, mpya (mpya SelectListItem() (Text = "Ndiyo, nitakuwepo", Value = bool.TrueString), SelectListItem() mpya () (Nakala = "Hapana, naweza "t come", Value = bool.FalseString) ), "Chagua chaguo")

}

Ushauri

Ikiwa ulikuwa unatumia MVC 3, unaweza kutarajia sisi kuongeza faili ya CSS kwenye mwonekano kwa kubainisha sifa ya href kama @Href("~/Content/Site.css") au @Url.Content("~/Content/Site .css" ) . Ukiwa na MVC 4, Razor hutambua kiotomatiki sifa zinazoanza na ~/ na kukuwekea kiotomatiki @Href au @Url.

Hitilafu inayoonekana zaidi ya uthibitishaji sasa itaonyeshwa ikiwa data iliyosababisha hitilafu iliwasilishwa, kama inavyoonyeshwa katika .

Kielelezo 2-20: Hitilafu za uthibitishaji zimeangaziwa kiotomatiki

Hebu tumalize mfano

Sharti la mwisho la ombi letu la mfano ni kutuma barua pepe iliyo na RSVP zilizokamilishwa kwa rafiki yetu, mratibu wa sherehe. Tunaweza kufanya hivi kwa kuongeza mbinu ya kufanya ili kuunda na kutuma ujumbe wa barua pepe kwa kutumia madarasa ya barua pepe ya .NET Framework. Tutatumia mbinu ya msaidizi wa WebMail badala yake. Hii ni nje ya upeo wa MVC, lakini itaturuhusu kukamilisha mfano huu bila kukwama katika maelezo ya kuunda watumaji wengine wa barua pepe.

Kumbuka

Tulitumia mbinu ya usaidizi wa WebMail kwa sababu inaturuhusu kuonyesha utumaji barua pepe kwa juhudi ndogo. Walakini, katika hali ya kawaida tungependelea kupakia chaguo hili kwa njia ya kitendo. Tutaelezea kwa nini tunapoelezea usanifu Mchoro wa MVC katika sura ya 3.

Tunataka barua pepe itumwe tunapochakata mwonekano wa Asante. B inaonyesha mabadiliko tunayohitaji kufanya.

Orodha ya 2-21: Kutumia Njia ya Msaidizi wa WebMail
@model PartyInvites.Models.GuestResponse @( Layout = null; ) Asante @{ jaribu { WebMail.SmtpServer = "smtp.example.com"; WebMail.SmtpPort = 587; WebMail.EnableSsl = kweli; WebMail.UserName = "mySmtpUsername"; WebMail.Password = "mySmtpPassword"; WebMail.Kutoka = " [barua pepe imelindwa]"; WebMail.Tuma(" [barua pepe imelindwa]", "Arifa ya RSVP", Model.Jina + " ni " + ((Model.WillAttend ?? uongo) ? "" : "sio") + "kuhudhuria"); } kukamata (Isipokuwa) { @:Samahani - hatukuweza kutuma barua pepe ili kuthibitisha RSVP yako. } }

Asante, @Model.Name!

@if (Model.WillAttend == true) (@:Ni vizuri kwamba unakuja. Vinywaji tayari viko kwenye friji! ) vinginevyo ( @:Samahani kusikia kwamba huwezi kufanikiwa, lakini asante kwa kutufahamisha.)


Tumeongeza usemi wa Kiwembe unaotumia mbinu ya usaidizi wa WebMail kusanidi maelezo kuhusu seva yetu ya barua pepe, ikijumuisha jina la seva, ikiwa seva inahitaji muunganisho wa SSL, na maelezo ya akaunti. Mara tu tunapoweka kila kitu, tunatumia mbinu ya WebMail.Send kutuma barua pepe.

Tulijumuisha msimbo wote wa barua pepe katika kujaribu...kamata kizuizi ili tuweze kumuonya mtumiaji ikiwa barua pepe haikutumwa. Tunafanya hivi kwa kuongeza kizuizi cha maandishi kwenye matokeo ya mwonekano wa Shukrani. Itakuwa bora kuonyesha uwasilishaji tofauti hitilafu ikiwa barua pepe haikuweza kutumwa, lakini tulitaka kurahisisha ombi letu la kwanza la MVC.

Tovuti nyingi zinajumuisha maudhui ambayo yanapatikana tu kwa watu ambao wameingia (yaani, ambao wameidhinishwa). Kwa chaguo-msingi, ASP.NET hutoa violezo vya mradi wa Tovuti ambavyo vinajumuisha kurasa zinazokuruhusu kutekeleza kazi za uthibitishaji.

Kiolezo cha mradi wa Wavuti wa ASP.NET ambacho kimeonyeshwa katika matembezi haya ni mpya katika Visual Studio 2010.

Mapitio haya yanakuonyesha jinsi ya kutumia kiolezo cha mradi wa Wavuti wa ASP.NET ili kuunda Tovuti yenye utendaji wa kimsingi wa kuingia.

Kazi zilizoonyeshwa katika mwongozo huu ni pamoja na:

    Kuunda Tovuti ya ASP.NET.

    Kuunda ukurasa wa wanachama pekee. Ukurasa huo utafikiwa na watumiaji walioidhinishwa pekee (watumiaji ambao wameingia).

    Kwa kutumia ukurasa wa usajili, unaowezesha watumiaji kujiandikisha na kuunda akaunti mpya.

    Kuingia na kupata habari ambayo inapatikana kwa watumiaji walioidhinishwa pekee.

    Kwa kutumia ukurasa wa kubadilisha-nenosiri, ambayo huwawezesha watumiaji walio na akaunti kubadilisha nenosiri lao.

    Kufanya ukurasa wa kubadilisha-nenosiri kupatikana kwa watumiaji walioidhinishwa (lakini kwa watumiaji walioidhinishwa pekee).

Masharti

Ili kukamilisha somo hili, utahitaji:

    Microsoft Visual Msanidi wa Wavuti 2010 Express au Visual Studio 2010.

    SQL Seva Express imewekwa ndani ya kompyuta yako. Kwa maelezo kuhusu jinsi ya kusakinisha SQL Server Express, angalia Jinsi ya: Kuunganisha kwenye Hifadhidata ya AdventureWorksLT kwa kutumia Faili ya .MDF.

Kuunda Mradi Mpya wa Tovuti

Utaanza kwa kuunda mradi mpya wa Tovuti ya ASP.NET. Kiolezo cha mradi unachotumia kinajumuisha vipengele vingi vinavyohitajika ili kuunda tovuti inayoauni uthibitishaji.

Mapitio haya hutumia mradi wa wavuti. Unaweza kutumia mradi wa programu ya Wavuti badala yake. Kwa maelezo kuhusu tofauti kati ya aina hizi za miradi ya Wavuti, angalia Miradi ya Maombi ya Wavuti dhidi ya Miradi ya Tovuti.

Ili kuunda Tovuti mpya ya ASP.NET

    Anzisha Visual Studio au Visual Web Developer.

    Ndani ya Faili menyu, bonyeza Tovuti Mpya. (Ikiwa huoni chaguo hili, bofya Mpya, na kisha bonyeza Tovuti.)

    The Tovuti Mpya sanduku la mazungumzo linaonyeshwa.

    Chini ya Violezo Vilivyosakinishwa, bofya Visual Msingi au C# na kisha chagua Tovuti ya ASP.NET.

    Ndani ya Mahali pa Wavuti sanduku, chagua Mfumo wa Faili na ingiza jina la folda ambapo unataka kuweka kurasa za Tovuti. Kwa mfano, ingiza jina la folda C:\Tovuti\Ingia kisha ubofye sawa.

    Visual Studio huunda folda na kufungua Wavuti ndani Chanzo mtazamo. Tambua kwamba Tovuti ya mizizi ina faili na folda kadhaa ikiwa ni pamoja na folda ya Akaunti, faili ya Web.config, kurasa za About.aspx na Default.aspx, na ukurasa mkuu wa Site.master.

    Nyumba ya ukurasa wa Wavuti huonyeshwa kwenye kivinjari. Angalia vitu vya menyu ( Nyumbani, Kuhusu) na Ingia kiungo.

    Funga kivinjari.

Kuunda Ukurasa wa Wanachama Pekee

Katika sehemu hii, utaunda ukurasa wa wanachama pekee. Watumiaji walioingia tu (watumiaji walioidhinishwa) wanaweza kufikia ukurasa huu. Utaongeza kidhibiti kwenye ukurasa mkuu ili kuelekeza watumiaji walioidhinishwa kwenye ukurasa wa wanachama pekee. Watumiaji ambao hawajaingia (watumiaji wasiojulikana) wanapobofya kiungo cha wanachama pekee, wataelekezwa kwenye ukurasa wa kuingia ambapo wanaweza kuingia au kuunda akaunti.

Ili kuunda ukurasa wa wanachama pekee

    Katika Kichunguzi cha Suluhisho, bofya kulia folda ya Akaunti kisha ubofye Ongeza Kipengee Kipya.

    Hakikisha kuwa unaunda ukurasa mpya kwenye folda ya Akaunti.

    Ndani ya Tovuti Mpya za Wavuti sanduku la mazungumzo, chagua Fomu ya Wavuti.

    Ndani ya Jina kisanduku cha maandishi, weka MembersOnly.aspx.

    Chagua Chagua ukurasa mkuu tiki kisanduku na kisha bofya Ongeza.

    The Chagua Ukurasa Mkuu sanduku la mazungumzo linaonyeshwa.

    Chini ya Yaliyomo kwenye folda,chagua Site.master na kisha bonyeza sawa.

    Ukurasa wa MembersOnly.aspx umeundwa katika folda ya Akaunti. Ukurasa ni ukurasa wa maudhui kwa ukurasa wa Site.master.

    Katika Kichunguzi cha Suluhisho, bofya mara mbili ukurasa wa MemberOnly.aspx ili kuufungua, na kisha ubadilishe hadi Kubuni mtazamo.

    Ongeza yaliyomo kwenye ukurasa kuu.

    Kwa mfano, unaweza kuongeza "Karibu kwa ukurasa wa wanachama pekee. Umeingia kwa ufanisi."

Mbali na ukurasa ambao umeunda, folda ya Akaunti ina kurasa na faili zifuatazo:

    Sajili.aspx. Ukurasa huu huwaruhusu watumiaji wapya kuunda akaunti.

    Ingia.aspx ukurasa. Hii inauliza jina la mtumiaji na nenosiri.

    BadilishaNenosiri.aspx. Ukurasa huu huwaruhusu watumiaji waliojiandikisha kubadilisha nenosiri lao.

    BadilishaPasswordSuccess.aspx. Ukurasa huu unaonyeshwa watumiaji wanapobadilisha nenosiri lao kwa mafanikio.

    Faili ya Web.config.

Kwa chaguo-msingi, kurasa katika folda ya Akaunti hazipatikani kwa watumiaji wasiojulikana, isipokuwa Register.aspx na kurasa za Login.aspx. Mipangilio inayofafanua ufikiaji wa kurasa katika folda ya Akaunti imesanidiwa katika faili ya Web.config katika folda hiyo. Mipangilio inayofafanua ufikiaji wa ukurasa wa Ingia imesanidiwa kwenye faili ya mizizi ya Web.config.

Ndani ya Mali windows, badilisha mali ya maandishi ili Badilisha Nenosiri. Unaweza kukubali kitambulisho chaguomsingi.

Ndani ya Mali dirisha, bonyeza NavigateUrl na bonyeza ellipsis ( ... ) kifungo.

The Chagua URL sanduku la mazungumzo linaonyeshwa.

Chini ya Folda za mradi, bofya Akaunti.

Chini ya Yaliyomo kwenye folda sawa.

Bonyeza CTRL+F5 ili kuendesha ukurasa.

Taarifa kwamba Badilisha neno la siri kiungo kinaweza kufikiwa wakati hujaingia.

Bofya Badilisha neno la siri.

Unaelekezwa kwenye ukurasa wa kuingia Kwa sababu ya ukurasa wa kubadilisha-nenosiri unapatikana kwa watumiaji walioidhinishwa pekee.

Ingiza jina la mtumiaji na nenosiri ulilounda hapo awali, kisha ubofye Ingia.

Bofya Toka nje.

Unaporudishwa kwenye ukurasa wa nyumbani, funga kivinjari.

Ifuatayo, utarekebisha faili ya Badilisha neno la siri kiungo ili kuifanya ipatikane kwa watumiaji pekee ndio wameingia. Unafanya hivyo kwa kuongeza kiungo kwenye udhibiti wa HeadLoginView kwenye ukurasa mkuu.

Kufanya kiungo cha kubadilisha-nenosiri kupatikana tu kwa watumiaji walioingia

    Katika Kichunguzi cha Suluhisho, bofya mara mbili Site.master.aspx ili kuifungua, na kisha ubadilishe hadi Kubuni mtazamo.

    Futa Badilisha neno la siri kiungo ulichounda awali.

    Kubadili Chanzo mtazamo.

    Kutoka Kawaida nodi ya Sanduku la zana, buruta kidhibiti kwenye kipengee cha LoggedInTemplate kilicho ndani ya kidhibiti cha LoginView.

    Weka kipengele cha Maandishi ili Kubadilisha Nenosiri.

    Baada ya sifa ya runat="server", chapa "NavigateUrl=" na ubofye mara mbili Chagua URL... kutoka kwa orodha ibukizi.

    The Chagua Kipengee cha Mradi sanduku la mazungumzo linaonyeshwa.

    Chini ya Folda za mradi, bofya Akaunti.

    Chini ya Folda ya Yaliyomo, chagua ChangePassword.aspx kisha ubofye sawa.

    Alama ya kiungo itafanana na ifuatayo:

    Badilisha neno la siri

    Kumbuka kuwa kiungo hiki hakitaonekana ndani Kubuni tazama, kwa sababu yaliyomo kwenye kipengee cha LoggedInTemplate hayaonekani kwa chaguo-msingi.

Kujaribu Tovuti

Sasa unaweza kujaribu utendakazi wa kubadilisha-nenosiri la Tovuti.

Ili kujaribu ukurasa wa kubadilisha nenosiri

    Bonyeza CTRL+F5 ili kuendesha tovuti.

    Ukurasa wa nyumbani unaonyeshwa, lakini Badilika nenosiri lako kiungo hakionekani.

    Bofya Ingia na ingiza jina lako la mtumiaji na nenosiri.

    Unaelekezwa kwenye ukurasa wa nyumbani. Ona kwamba jina lako na Badilisha nenosiri lako viungo sasa vinaonekana.

    Bofya Wanachama Pekee.

    Unaelekezwa kwenye ukurasa wa wanachama pekee.

    Bofya Badilisha nenosiri lako.

    Ukurasa wa kubadilisha-nenosiri unaonyeshwa.

    Weka nenosiri jipya.

    Bofya Badilisha neno la siri. Ikiwa mabadiliko yatafanikiwa, ukurasa wa mafanikio utaonyeshwa.

Kujaribu Nenosiri Jipya

Kisha utatumia nenosiri lako jipya kuingia tena na kufikia ukurasa wa wanachama pekee.

Ili kujaribu nenosiri mpya

    Bofya Toka nje. Utaelekezwa kwenye ukurasa wa nyumbani ambao watumiaji wasiojulikana wanaona.

    Bofya Ingia.

    Ingiza jina lako la mtumiaji na jipya nenosiri na kisha bofya Ingia.

    Unaelekezwa kwenye ukurasa wa nyumbani. Sasa unaweza kufikia maudhui ambayo yanapatikana kwa watumiaji walioidhinishwa. .

    Bofya Wanachama Pekee.

    Unaelekezwa kwenye ukurasa wa wanachama pekee. Ukijaribu kuingia na uthibitishaji wa nenosiri lako la zamani utashindwa.

    Funga kivinjari.

Hatua Zinazofuata

Katika mapitio haya, ulitumia kurasa ambazo ni sehemu ya kiolezo cha mradi wa tovuti ya ASP.NET ili kuunda Tovuti inayothibitisha watumiaji. Ukipenda, unaweza pia kuunda kurasa zako za kuingia ili kutoa utendakazi sawa na unaoonyeshwa katika mwongozo. Kwa habari zaidi, ona.

Leo nataka kutoa sababu 10 nzuri kwa nini ASP.NET kwa Kompyuta kufaa zaidi:

Ikiwa tayari unafanya kazi na PHP au Java (au hata .WAVU), au nataka tu kuelewa jinsi ya kuunda programu za wavuti, basi ningependekeza uzingatie ASP.NET.

1. Ukosefu wa Mfumo.Mtandao

Kwa sisi, watumiaji wa WebForm, hatuwezi kufanya bila hiyo wakati wa kuunda programu za wavuti. Ikiwa unaamua kuhamia ASP.NET MVC Core 1.0, basi huondoa mwingiliano na maktaba ya System.Web, ambayo inakuwezesha kuharakisha upakiaji na uendeshaji wa tovuti ya ASP.NET.

2. Muundo mpya na ulioboreshwa wa 2016

ASP.NET MVC 4 kwa Kompyuta na ASP.NET MVC 5 imezama kwenye usahaulifu... Wakati fulani uliopita, .NET iliandikwa upya kabisa na kupewa jina jipya ASP.NET Core 1.0. Hii imerahisisha maisha hata kwa wasanidi programu. Hatua ya ujumuishaji haikujumuishwa kwenye mzunguko wa kawaida wa kuandika msimbo, uundaji na utendakazi wa majaribio. Hii inaharakisha sana mchakato wa maendeleo.

3. Hisia zaidi ya asili

Nimekuwa msanidi programu katika Microsoft tangu enzi za ASP ya Kawaida, na nilipohamia WebForms, mabadiliko hayakuhisi asili hata kidogo. Pamoja na ujio wa MVC, mchakato wa kuendeleza programu za wavuti ukawa wa asili zaidi, na nilipenda muundo huu wa kazi. MVC haina ViewState au IsPostback na sio lazima kuwa na wasiwasi kuzihusu kila wakati. Kila kitu ni sawa na PHP.

4. Maarufu zaidi shuleni

Kwa kuwa ASP.NET inategemea IIS, mojawapo ya seva za wavuti maarufu zaidi, kufanya kazi na MVC inaonekana kuwa ya kawaida kabisa. Mashirika mengi katika siku za ASP ya Kawaida yalianza na IIS. Leo, seva za IIS zinachukua 28% ya Mtandao wote na ni ya pili kwa umaarufu tu kwa Apache na nginx.

5. Ujumuishaji wa Javascript uliorahisishwa

Katika Fomu za Wavuti, wakati wa kujaribu kutumia Javascript, kila aina ya shida zinaweza kutokea ambazo wengi wetu hata hatujui. Nimeona watengenezaji wakihangaika Ujumuishaji wa JavaScript kwenye msimbo wa Page_Load wa WebForm! Kwa upande wake, ASP.NET MVC kwa Kompyuta hukuruhusu kujumuisha Javascript katika programu karibu bila dosari. Jaribu tu kutekeleza AngularJs katika programu fulani ya wavuti ya WebForms kisha uniambie umebakisha nywele ngapi kichwani mwako.

6. Chanzo wazi

Sasa kila mtu anaweza kutazama msimbo! Ikiwa unataka kupanua View na kuunda ViewEngine yako mwenyewe, angalia tu msimbo kwenye Github na uone jinsi inavyotekelezwa. Upatikanaji wa msimbo wa chanzo huongeza mawazo!

7. Msaada wa jukwaa la msalaba

Sasa unaweza kuunda programu za wavuti kwenye jukwaa lolote: Apple, Linux au Windows.

8. Visual Studio kujitegemea

Takriban kutoka wakati wa kutajwa kwa mara ya kwanza kwa kutolewa kwa NET/ASP.NET iliyosasishwa, kila aina ya wasanidi ( ikiwa ni pamoja na Microsoft) walianza kuunda vitambulisho vyao wenyewe vinavyofichua uwezekano toleo jipya.WAVU Vitambulisho kama hivyo (Msimbo wa Studio inayoonekana au Rider katika #C kutoka JetBrains) hukuruhusu kukuza miradi yako mwenyewe ya ASP.NET na C# bila Visual Studio. Sasa haijalishi ni mazingira gani msanidi hutumia, kwa sababu wateja wanahitaji tu tovuti iliyopangwa tayari!

9. Jamii ya kutosha

ASP.NET MVC ni rahisi kwa wanaoanza na watengenezaji wengi wa wavuti hewa safi. Chombo hiki kinatupeleka enzi mpya, mbali na WebForms. Sehemu kubwa ya wasanidi tayari wamebadilisha hadi MVC.

10. Upimaji wa kitengo

Kwa kuongeza, ASP.NET MVC hutoa uwezo wa kupima kitengo. Hii hurahisisha sana mchakato wa majaribio. Kwa watengenezaji wengine wa WebForm, hii itaonekana kama dhana mpya kabisa, kwani kupima miingiliano na vipengee vya biashara hapo awali kuliunda shida kubwa. Ukiwa na ASP.NET MVC, unaweza kujaribu vipengele vyote kwa urahisi na kuhakikisha kuwa programu yako inafanya kazi kikamilifu.

Hitimisho

Natumaini leo umepata maelezo ya kutosha kuhusu sifa za ASP.NET MVC zinazofanya kuwa na thamani ya kubadili chombo hiki.

Tafsiri ya kifungu " Sababu 10 za Kuanza Kutumia ASP.NET MVC” ilitayarishwa na timu ya mradi wa kirafiki.

Nzuri mbaya

Ilisasishwa mwisho: 10/31/2015

ASP.NET MVC ni jukwaa la kuunda tovuti na programu za wavuti kwa kutumia muundo wa MVC (muundo - mtawala) (au kiolezo).

Kazi kwenye jukwaa jipya ilianza mnamo 2007, na toleo la kwanza lilionekana mnamo 2009. Kwa hiyo, kufikia sasa (2012), matoleo 4 ya jukwaa tayari yametolewa, na mfumo yenyewe umepata umaarufu mkubwa duniani kote kutokana na kubadilika kwake na kubadilika.

Muundo wa msingi wa MVC jukwaa jipya, inamaanisha mwingiliano wa vipengele vitatu: mtawala (mtawala), mfano (mfano) na uwasilishaji (mtazamo). Je, vipengele hivi vinawakilisha nini?

Kidhibiti kinawakilisha darasa ambalo programu haswa huanza. Darasa hili hutoa uhusiano kati ya mfano na mtazamo. Kupokea pembejeo ya mtumiaji, mtawala, kulingana na mantiki ya ndani, ikiwa ni lazima, hufikia mfano na hutoa mtazamo unaofaa.

Mtazamo ni sehemu halisi ya kuona au kiolesura cha mtumiaji programu - kwa mfano, ukurasa wa html ambao mtumiaji anayetembelea tovuti huingiliana na programu ya wavuti.

Muundo unawakilisha seti ya madarasa ambayo yanaelezea mantiki ya data iliyotumiwa.

Mpango wa mwingiliano wa jumla unaweza kurahisishwa kama ifuatavyo:

ASP.NET MVC na Fomu za Wavuti za ASP.NET

ASP.NET MVC kwa njia fulani ni mshindani wa fomu za jadi za wavuti na ina faida zifuatazo juu yao:

    Kushiriki Wajibu. Katika MVC, maombi yana sehemu tatu: mtawala, mtazamo, na mfano, ambayo kila mmoja hufanya kazi zake maalum. Kama matokeo, programu itakuwa rahisi kudumisha na kurekebisha katika siku zijazo.

    Kwa sababu ya mgawanyo wa majukumu, maombi ya mvc yana uthibitisho bora. Na tunaweza kujaribu vipengele vya mtu binafsi bila ya kila mmoja.

    Mawasiliano Itifaki ya HTTP . Programu za MVC, tofauti na Fomu za Wavuti, hazitumii vipengee vya hali (ViewState). Uwazi na unyenyekevu wa jukwaa hukuruhusu kufikia udhibiti zaidi kufanya kazi kwenye maombi

    Kubadilika. Unaweza kubinafsisha vipengele mbalimbali vya jukwaa unavyotaka. Badilisha sehemu zozote za bomba la MVC au ubadilishe kulingana na mahitaji na mahitaji yako.

Wakati huo huo, hupaswi kupunguzwa kabisa ASP.NET WebForms. Kwa sababu pia ina nguvu zake, kwa mfano, mfano wa tukio, ambalo litakuwa karibu na watengenezaji hao ambao hapo awali walihusika katika kuunda maombi ya mteja.

Ukiwa na fomu za kitamaduni za wavuti, una udhibiti wa uwekaji alama na unaweza, kwa wakati halisi, mhariri wa kuona Visual Studio ili kuona jinsi ukurasa fulani utakavyokuwa. Unapofanya kazi na MVC, Visual Studio haikuruhusu kufanya hivi.

Kwa hali yoyote, uko huru kuchagua jukwaa linalokufaa zaidi. Na ikiwa umeandika miradi mikubwa kwa kutumia fomu za jadi za wavuti, inaweza kuwa na thamani ya kuendelea kufanya kazi nao. Zaidi ya hayo, Fomu za Wavuti za ASP.NET bado hazifi na zinaendelea kutengenezwa.