2011-03-16 16 views
5

मेरे पास एक बड़ा दृश्य है जिसके लिए कुछ सशर्त तर्क की आवश्यकता है ताकि यह देखने के लिए कि कौन से एचटीएमएल भाग दृश्य के बीच में प्रस्तुत किए जाएंगे। मेरे पास मेरे मॉडल पर एक संपत्ति है जिसमें कई अलग-अलग मान हो सकते हैं जो एचटीएमएल आउटपुट को निर्धारित करते हैं।एमवीसी व्यू बनाम एचटीएमएलहेपर बनाम सशर्त तर्क

मैं सामान्य रूप से एक HTML सहायक में सशर्त तर्क डालता हूं, लेकिन यह देखते हुए कि प्रत्येक आउटपुट एचटीएमएल का एक उचित हिस्सा है, मुझे यकीन नहीं है कि सी # फाइल में इन्हें बचाना बहुत अच्छा होगा। मैं तर्क में तर्क भी डाल सकता हूं और अलग-अलग विचार प्रस्तुत कर सकता हूं लेकिन यह देखते हुए कि अधिकांश दृश्य समान हैं, यह या तो बहुत अच्छा प्रतीत नहीं होता है। इसलिए यदि मेरे विचार में बयान (या आंशिक?) है तो मुझे एकाधिक के साथ छोड़ दिया गया है जो बदसूरत लगता है (और जाहिर है अवांछनीय)।

ऐसा करने का सबसे अच्छा तरीका क्या है?

(मैं मामले में MVC3 उपयोग कर रहा हूँ वहाँ मैं उपयोग कर सकते हैं कुछ नया और अजीब है!) इस तरह

+0

आप रेजर का उपयोग कर रहे हैं तो उन्हें अपनी स्थिति के अनुरूप हो सकता है googling "उस्तरा घोषणात्मक एचटीएमएल सहायकों" की कोशिश ... वे नहीं हो सकता है। लेकिन उनकी नई और फंकी ;-) – Charlino

उत्तर

3

मैं आमतौर पर अलग दृश्य हिस्सा डाल अपने स्वयं के आंशिक। फिर मेरा विचार सशर्त रूप से प्रत्येक आंशिक को Html.Partial के साथ कॉल करता है। यह आपको सूजन से मुख्य दृश्य रखता है।

सामान्य रूप से, मैं HTML से बचने की कोशिश करता हूं। ऐसे तत्व जिनमें एक से अधिक तत्व होते हैं।

कुछ की तरह:

@if(Model.HasA) 
{ 
    @Html.Partial("widgetdetails-hasa") 
} 

@if(Model.HasB) 
{ 
    @Html.Partial("widgetdetails-hasb") 
} 
// etc 
+0

मैं सहमत हूं - एक से अधिक तत्व वाले एचटीएमएल हेल्पर्स को आंशिक पृष्ठ कहा जाता है ;-) – richb01

4

IMHO तर्क की दृष्टि के लिए ठीक है:

@if (Model.ShouldShowSomeSection) 
{ 
    ... some large chunk of HTML 
} 
else 
{ 
    ... some alternative 
} 
संबंधित मुद्दे