2012-08-08 13 views
5

Code Generation and T4 Text Templates पढ़ना का अर्थ है और मैं इस वाक्य रचना < # = DateTime.Now #>क्या <#= #>

<html><body> 
The date and time now is: <#= DateTime.Now #> 
</body></html> 

यह कैसे <%= DateTime.Now %> या <%# DateTime.Now %> से अलग है पाया।

गूगल खोज कुछ भी नहीं

+0

प्रलेखन के माध्यम से जा रहा है, यह 'के सभी वाक्यविन्यास है'। बहुत समान – codingbiz

+0

टी 4 टेक्स्ट पीढ़ी के दौरान <# = डेटटाइम.अब #> मूल्यांकन किया गया है और परिणाम आउटपुट में लिखा गया है। AFAIK <%= %> का मतलब टी 4 इंजन के लिए कुछ भी नहीं है और यह सिर्फ लिखा गया है। – FuleSnabel

+0

@ फुलेस्नाबेल मुझे अंतर नहीं पता था, मैं टी 4 के लिए नया हूं, मैंने सोचा कि अभिव्यक्ति लिखने का यह एक और तरीका है asp.net। मेरे लिए सिर्फ अजीब था – codingbiz

उत्तर

4

मैं टी -4 पाठ टेम्पलेट के साथ वास्तव में परिचित होने का दावा नहीं कर सकते हैं पता चला है, लेकिन ऐसा लगता अंतर डिजाइन के बीच है/निर्माण बार कोड पीढ़ी (जो निष्पादन योग्य बयान शामिल कर सकते हैं) और रनटाइम कोड निष्पादन ।

तो <#= #> फ़ाइल बनाने के लिए उपयोग किए जाने वाले टेम्पलेट के भीतर एक अभिव्यक्ति का मूल्यांकन करता है।

और <%= %> ब्लॉक के भीतर कोड निष्पादित करता है और इसे आउटपुट स्ट्रीम में लिखता है। जब पृष्ठ को पहली बार निष्पादित किया जाता है तो यह जेआईटी-संकलित होगा, लेकिन बिंदु यह है कि यह पृष्ठ के चलते निष्पादित करने के लिए कोड के ब्लॉक को इंगित करता है, न कि टेम्पलेट फ़ाइल के उत्पादन के दौरान।

तीसरा फॉर्म, <%# %> डाटाबेसिंग अभिव्यक्ति को इंगित करता है, पृष्ठ निष्पादित होने पर भी मूल्यांकन किया जाता है।

अभिव्यक्ति नियंत्रण ब्लॉक

एक अभिव्यक्ति नियंत्रण ब्लॉक एक अभिव्यक्ति मूल्यांकन करता है और एक स्ट्रिंग में बदल देता है। यह आउटपुट फ़ाइल में डाला गया है।

अभिव्यक्ति नियंत्रण ब्लॉक प्रतीकों से delimted रहे < # = ... #>

उदाहरण के लिए, निम्नलिखित नियंत्रण ब्लॉक का कारण बनता है को आउटपुट फ़ाइल में "5":

<#= 2 + 3 #>

स्रोत: http://msdn.microsoft.com/en-us/library/bb126478

+0

आपका मतलब है '<#= 2 + 3 #>' '<%= 2 + 3 %>' जैसा ही है? – codingbiz

+2

आउटपुट में अंतिम परिणाम समान है, लेकिन मूल्यांकन अलग-अलग समय पर होता है। जब आप फ़ाइल उत्पन्न करते हैं तो <# = 2 + 3' निष्पादित होगा, इसलिए आपकी जेनरेट की गई फ़ाइल में "5" होगा। जब आप ASP.Net पृष्ठ चलाते हैं तो <% = 2 + 3' निष्पादित होगा। –

+0

उदाहरण के लिए, जब कोड बनाया जाता है तो प्रत्येक टाइम पेज को चालू होने पर वर्तमान दिनांक का मूल्यांकन बनाते समय टाइमस्टैम्प डालने के बीच यह अंतर होगा। –

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