2011-12-07 18 views
18

पर कथन में यह कथन छोटा करें यदि मैं इसे एक पंक्ति में छोटा कर सकता हूं? मैंने विभिन्न तरीकों की कोशिश की है लेकिन इसे सही नहीं मिल सकता है।रेजर में एक पंक्ति

@if(SiteMap.CurrentNode.Title == "Contact") 
{ 
    @:<div class="contact"> 
} 
+1

दोहराने नहीं है शायद असंतुलित टैग के बिना यह करने के लिए एक बेहतर तरीका है। कृपया अधिक कोड दिखाएं। – SLaks

+0

यह अगर कथन मैं छोटा करना चाहता हूं। अन्य कोड अप्रासंगिक है। – Todd

+0

गलत। यह 'if' कथन खराब डिजाइन है। अन्य कोड को देखते हुए, हम दिखा सकते हैं कि इसे बेहतर तरीके से कैसे डिजाइन किया जाए। – SLaks

उत्तर

20

वहाँ एक भी सरल समाधान हो सकता है, लेकिन यह काम करना चाहिए:

@Html.Raw((SiteMap.CurrentNode.Title == "Contact") ? "<div class='contact'>" : "") 
+1

एचटीएमएल.रॉ के साथ सावधान रहें, आउटपुट एन्कोड नहीं करता है! –

11

एक और तरीका होगा:

@if(SiteMap.CurrentNode.Title == "Contact") { <text><div class="contact"></text> } 

मैं व्यक्तिगत रूप से त्रिगुट ऑपरेटर की तुलना में यह अधिक पठनीय पाते हैं, लेकिन यह व्यक्तिगत

+0

मुझे इस की पठनीयता भी पसंद है लेकिन एकमात्र समस्या यह है कि जब आप विजुअल स्टूडियो में CTRL K + D दबाते हैं तो यह इसे 3 पंक्तियों तक छोड़ देता है :( –

5

ऐसा करने का सबसे छोटा संभव तरीका है:

@(SiteMap.CurrentNode.Title == "Contact" ? "<div class='contact'>" : "") 

या

@(SiteMap.CurrentNode.Title == "Contact" ? @"<div class=""contact"">" : "") 

या भी कम अगर आप अपने एचटीएमएल कोड

<div class="@(SiteMap.CurrentNode.Title == "Contact" ? "contact" : "")"> 
संबंधित मुद्दे