2010-09-16 9 views
5

इन टैग में अंतर क्या हैं?एएसपी.नेट कोड अभिव्यक्ति, डेटा बाध्यकारी, और अन्य घोषणात्मक एक्सप्रेस

<% <% # <% = <% $

इससे भी महत्वपूर्ण बात, मैं कैसे एक पेज संपत्ति एक ASP.NET नियंत्रण में कथात्मक वाक्यविन्यास का उपयोग प्रदर्शित करते हैं? मैं इसे एएसपी.NET नियंत्रण में करने की कोशिश कर रहा हूं। कार्य लेबल के पाठ को सेट करना है, लेकिन अगर मैं आउटपुट नियंत्रण को बदलना चाहता हूं तो मैं इस प्रो को व्याकरणिक रूप से नहीं करना चाहता हूं। मुझे सर्वर साइड कंट्रोल के बारे में एक त्रुटि मिलती है जिसमें यह वाक्यविन्यास नहीं हो सकता है। मुझे यकीन नहीं है कि मुझे जो करना है, उसके लिए मुझे डाटाबेस नियंत्रण की आवश्यकता है लेकिन यह एक और विकल्प है।

आंशिक उत्तर आ रहा है।

अद्यतन एएसपी.NET 4.5 में एक नया टैग मैंने देखा है? साइट

<%:

उत्तर

9

आंशिक जवाब

माइक Banavige से उद्धृत

<%%> एक एम्बेडेड कोड ब्लॉक सर्वर कोड है कि पेज के चरण प्रस्तुत करना दौरान निष्पादित होता है। ब्लॉक में कोड कथन और वर्तमान पृष्ठ वर्ग में कॉल फ़ंक्शंस निष्पादित कर सकता है। http://msdn2.microsoft.com/en-gb/library/ms178135(vs.80).aspx

<% =%> सबसे जानकारी के एकल टुकड़े प्रदर्शित करने के लिए उपयोगी है। http://msdn2.microsoft.com/en-us/library/6dwsdcf5(VS.71).aspx

<% #%> डेटा बाध्यकारी अभिव्यक्ति सिंटेक्स। http://msdn2.microsoft.com/en-us/library/bda9bbfx.aspx

<% $%> एएसपी.नेट अभिव्यक्ति। http://msdn2.microsoft.com/en-us/library/d5bd1tad.aspx

<% @%> निर्देश सिंटेक्स। http://msdn2.microsoft.com/en-us/library/xz702w3e(VS.80).aspx

<% - -%> सर्वर-साइड टिप्पणियां। http://msdn2.microsoft.com/en-US/library/4acf8afk.aspx

अद्यतन:

ठीक है इस

<asp:Label ID="MyLabel" runat="server" Text='<%# MyProperty%>'></asp:Label> 

काम करने के लिए अगर मैं तो eval सिंटैक्स का उपयोग मैं डेटाबाउंड नियंत्रण के बारे में त्रुटि या मैं तो <% का उपयोग मैं एक मिल प्रकट होता है सर्वर पक्ष नियंत्रण त्रुटि। किसी और रंग की सराहना की .. यकीन नहीं है कि मैं वास्तव में समझ रहा हूं कि क्या हो रहा है।

शायद इसे रेंडर चरण के साथ कुछ करना है।

कुछ अधिक टिप्पणियों:

मैं = <% उपयोग कर सकते हैं डेटा बाइंडिंग के बिना और संपत्ति मूल्य प्राप्त है लेकिन किसी के बिना एक सर्वर साइड नियंत्रण में इसका इस्तेमाल नहीं कर सकते हैं।

यदि मैं सर्वर साइड नियंत्रण में <% # का उपयोग करता हूं लेकिन मुझे एक पृष्ठ करने की आवश्यकता है। डेटाबेस।

दिलचस्प बात यह है कि, मैं <% = या <% # का उपयोग कर सकता हूं जब मैं नियंत्रण में नहीं है जो पाठ प्रस्तुत करना चाहता हूं। हालांकि बाद वाले को डाटाबेसिंग की आवश्यकता है।

नई <%: वाक्य रचना समझाया गया है, कोड अभिव्यक्ति वाक्य रचना भी कहा जाता है

ASP.NET 4 हम एक नए कोड अभिव्यक्ति वाक्य रचना शुरू कर रहे हैं (<%: %>) के साथ

कि < तरह उत्पादन renders % =%> ब्लॉक करते हैं - लेकिन यह भी स्वचालित रूप से ऐसा करने से पहले एचटीएमएल एन्कोड करता है।

http://weblogs.asp.net/scottgu/new-lt-gt-syntax-for-html-encoding-output-in-asp-net-4-and-asp-net-mvc-2

+0

एक अन्य गोचा: <%# %> टैग एएसपीनेट टैग की विशेषता में एकमात्र मूल्य होना चाहिए। उदाहरण के लिए, आपके पास नहीं हो सकता ... टेक्स्ट = "$ <% # x.Amount%>" ... यह होना होगा ... टेक्स्ट = "<% #" $ "+ x.माउंट%> "... – David

0

नहीं है, सर्वर साइड नियंत्रण नहीं कर सकते। उदाहरण के लिए, मेरे पास स्किनपाथ नामक एक स्ट्रिंग प्रॉपर्टी है जो मुझे वर्तमान थीम के लिए पूर्ण App_Themes पथ देती है। मैं निम्नलिखित तरीके से इसका इस्तेमाल करते हैं:

<img src='<%= SkinPath %>/Images/myImage.png' /> 

हालांकि, निम्नलिखित काम नहीं करता:

<asp:Image ID='image' runat='server' ImageUrl='<%= SkinPath %>/Images/myImage.png' /> 

इसके बजाय, यह renders srcसचमुच परिणाम <img> में

+0

मैंने अपना जवाब अपडेट किया। मैं <% # का उपयोग कर सकता हूं और यह किसी संपत्ति को डेटाबेस करने के लिए काम करता है। क्या आपके पास और स्पष्टीकरण है कि <% काम क्यों नहीं करता है? क्या ऐसा इसलिए है क्योंकि रेंडर चरण काम करता है? –

+0

कर्टिस, मेरे पास एक टाइपो था: मुझे <% = SkinPath%> रखना चाहिए था और नहीं, मेरे पास इसके लिए कोई तर्क नहीं है। मुझे एक त्रुटि मिली है इससे पहले कि मुझे एक त्रुटि मिली जो सभी <% = से <% # को बदलकर हल किया गया था। कुछ चीजें जिन्हें आप समझने के लिए समय लेते हैं। अन्य बार, आप इसे पूरा करते हैं और भुगतान प्राप्त करते हैं। :) – Brad

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