2008-11-08 9 views
11

क्या कोई विशिष्ट कारण है कि मुझे HTML को मैन्युअल रूप से लिखने के बजाय Html.CheckBox, Html.TextBox, आदि विधियों का उपयोग क्यों करना चाहिए?क्या एमवीसी में एचटीएमएलहेल्पर का उपयोग करने का कोई फायदा है?

<%= Html.TextBox("uri") %> 

निम्नलिखित एचटीएमएल

<input type="text" value="" name="uri" id="uri"/> 

यह आप कुछ प्रमुख स्ट्रोक, लेकिन उस के अलावा अन्य की बचत होती है लगता है कि हो जाता है। क्या कोई विशिष्ट कारण है कि जब भी संभव हो तो एचटीएमएल हेल्पर का उपयोग करने के लिए मुझे अपने रास्ते से बाहर जाना चाहिए या क्या यह सिर्फ वरीयता है?

उत्तर

5

रहे हैं विशाल लाभ करने की ज़रूरत होगी:

यह ओवरलोड है तरीकों मूल्यों प्री-पॉप्युलेट करने के लिए (स्वरूपित, और HTML के लिए सुरक्षित) बस ViewState की तरह।

यह एमवीसी की सत्यापन सुविधाओं के समर्थन में निर्मित की अनुमति देता है।

यह आप प्रतिपादन ("नियंत्रक एडाप्टर" प्रकार कार्यप्रणाली का एक प्रकार) को बदलने के लिए अपनी खुद की DLL प्रदान करके प्रतिपादन ओवरराइड करने देता है।

यह अपने खुद के "नियंत्रण" बनाने का विचार करने के लिए सुराग: http://www.singingeels.com/Articles/Building_Custom_ASPNET_MVC_Controls.aspx

+2

नहीं है, ViewState ** नहीं है ** वहाँ पोस्टबैक (रों) पर एक पाठ बॉक्स के मूल्य बनाए रखने के लिए; यह आईपॉस्टबैकडाटा हैंडलर का काम है (System.Web.UI नेमस्पेस, System.Web असेंबली)। –

+0

मेरी शब्दावली का अच्छा सुधार ... +1 :) –

1

मैं MVC बहुत लंबा नहीं कर रहे हैं, लेकिन मैं पहले से ही कुछ विस्तार तरीकों लिखा है Html.ActionLink के आधार पर मेनू टैब उत्पन्न करने के लिए। यह मुझे मेरे उपयोग के अनुरूप होने की अनुमति देता है और, यदि मैं अपना सीएसएस मेनू कैसे काम करता हूं, तो नए टैब प्रारूप को आउटपुट करने के लिए केवल एक विधि को संशोधित करने का निर्णय लेता हूं।

अन्य उपयोग कि मैं उनमें से बना दिया है सशर्त उत्पादन ViewData का उपयोग कर नियंत्रण करने के लिए मूल्यों की आपूर्ति करने में है।

2

एक बात स्थिरता के लिए है ... एक हमेशा नाम विशेषता भूल के लिए मैं। इसके अलावा, आप अपनी परियोजनाओं के लिए कार्यों का विस्तार कर सकते हैं। उन्हें मददगार कुछ भी नहीं कहा जाता है!

2

उल्टा एक अमूर्त परत का उपयोग करने के लिए एक प्लगेबल तरीके से अपने कोड प्रूफिंग भविष्य है। शायद आज, आप एचटीएमएल 4 पेज बनाते हैं लेकिन कल आप एक्सएचटीएमएल पेज या एक्सएएमएल या एक्सयूएल बनाना चाहते हैं। यदि आप हर जगह टैग को हार्ड कोड करते हैं, तो विशेष रूप से यदि आपके पास सैकड़ों पृष्ठ हैं तो यह बहुत सारे बदलाव हैं। अगर सबकुछ इस पुस्तकालय को बुला रहा है, तो आपको बस पुस्तकालय को फिर से लिखना है। नकारात्मकता यह है कि इसे आमतौर पर मनुष्यों द्वारा थोड़ा कम पठनीय माना जाता है। इसलिए, यह शायद आपके रखरखाव प्रोग्रामर पर संज्ञानात्मक मांग को बढ़ाता है। इन फायदों और नुकसानों में वास्तव में एमवीसी के साथ कुछ लेना देना नहीं है।

7

एक और लाभ यह है कि आपके ViewData क्षेत्र यह से संबंधित जानकारी देगा के नाम से मेल खाते एक मूल्य है या नहीं।

उदा।

ViewData["FirstName"] = "Joe Bloggs"; 

<%=Html.TextBox("FirstName") %> 

प्रस्तुत करना होगा

<input type="text" value="Joe Bloggs" id="FirstName" /> 
2

यह वास्तव में ऑटो भरता अपने पाठ बॉक्स पहली बार अपने ViewData.Model.uri पर और दूसरा ViewData [ "uri"] द्वारा आधारित। यह कर मैन्युअल रूप से आप <input value="<%Html.Encode(ViewData.Model.Uri"%>" />

संबंधित मुद्दे

 संबंधित मुद्दे