2010-09-14 9 views
5

क्या <%%> और <% के बीच अंतर है: asp.net MVC के दृश्य इंजन के संदर्भ में%>। एमवीसी 2 पुस्तक में इसे निम्नानुसार दिया गया है:दृश्य टेम्पलेट कोड टैग - asp.net MVC के - पंजीकृत

  • <%%> कोड टेम्पलेट दृश्य टेम्पलेट प्रस्तुत करते समय कोड निष्पादित करता है।
  • <%:%> कोड डली कोड उन्हें भीतर निहित पर अमल और उसके बाद टेम्पलेट के उत्पादन में धारा के परिणाम प्रस्तुत करना।

जब जब दूसरे का उपयोग करने के पहले और उपयोग करने के लिए?

उत्तर

7

पुस्तक लगभग सही है:

<% %> कोड डली कोड निष्पादित जब देखें टेम्पलेट बना देता है। इसलिए यदि आप <div><% MyFunc() %></div> पर फ़ंक्शन करने के लिए कॉल करते हैं तो आपका काम रेंडरिंग समय पर निष्पादित किया जाएगा जब div को प्रस्तुत किया गया था लेकिन टैग बंद करने से पहले। फ़ंक्शन कुछ भी कर सकता है जो आप चाहते हैं, कुछ स्थितियों की जांच करें और अपवाद के साथ असफल हो, कुछ चर सेट करें, प्रतिक्रिया स्ट्रीम पर लिखने के लिए HttpContext.CurrentContext.Response.Write (या केवल Response.Write वेबफॉर्म में) का उपयोग करें।

<%: %> कोड नगेट्स उनके भीतर मौजूद कोड निष्पादित करते हैं और फिर परिणाम एचटीएमएल एन्कोडेड टेम्पलेट की आउटपुट स्ट्रीम में प्रस्तुत करते हैं। यानी यह एक ही रूप में <% HttpServerUtility.HtmlEncode(HttpContext.CurrentContext.Response.Write(MyFunc()))%>

<%= %> कोड डली कोड उन्हें भीतर निहित पर अमल और उसके बाद एचटीएमएल एन्कोडिंग टेम्पलेट के उत्पादन धारा को बिना परिणाम प्रस्तुत करना है। यानी यह पिछले दो मामलों में) <% HttpContext.CurrentContext.Response.Write(MyFunc())%>

--- MyFunc (के रूप में ही एक स्ट्रिंग लौट जाना है। यह ViewModel की कुछ संपत्ति या किसी भी अन्य कोड नगेट का संदर्भ भी हो सकता है जो स्ट्रिंग का मूल्यांकन करता है।