2009-05-13 19 views
11

मैं एएसपी.नेट एमवीसी व्यू पेज में jquery विधि में सत्र मान का उपयोग करना चाहता हूं। नीचे दिए गए कोड को देखें,jquery विधि में asp.net सत्र मान कैसे प्राप्त करें?

$('input[type=text],select,input[type=checkbox],input[type=radio]').attr('disabled', '<%= Session["CoBrowse"].ToString() %>'); 

मैं jquery में सत्र मूल्य कैसे प्राप्त कर सकता हूं।

+0

ऐसा दिखता है जैसे काम करना चाहिए जब आप – ichiban

उत्तर

17
$('input,select').attr('disabled','<%=Session["CoBrowse"].ToString() %>'); 
8

सुनिश्चित नहीं हैं कि अगर यह सबसे अच्छा मार्ग है, लेकिन अपने aspx पृष्ठ के भीतर आप एक विधि है कि आपके सत्र चर, उदा का मान देता है बना सकते हैं

सर्वर साइड:

using System.Web.Services; 
[WebMethod(EnableSession = true)] 
public static string GetSession() 
{ 
    return Session["CoBrowse"].ToString(); 
} 

तो इस विधि ग्राहक jQuery का उपयोग कर पक्ष फोन:

$.ajax({ 
    type: "POST", 
    url: "./Default.aspx/GetSession", 
    data: "{}", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(result){ 
     ('input[type=text],select,input[type=checkbox],input[type=radio]').attr('disabled', result.d); 
    } 
}); 
+3

कर सकते हैं इसके बाद के संस्करण कोड का उपयोग क्या होता है के रूप में।? आप एक स्थिर विधि के भीतर से सत्र का उपयोग करते हैं? मुझे नहीं लगता था कि आप कर सकते हैं। – rball

+0

यह वह मार्ग है जिसे मैं नीचे चला गया हूं। मेरे पास एक वेब सेवा है जो मुझे सत्र आईडी देता है .. Guid a = Guid.Parse (HttpContext.Current.Session ["सत्र_आईडी"]। ToString()); और फिर मैंने क्लाइंट पक्ष में jquery AJAX फ़ंक्शन के माध्यम से पढ़ा। ध्यान रखें कि इसे एक GET होने की आवश्यकता होगी क्योंकि आप केवल एक मूल्य लौट रहे हैं – tmutton

+0

मुझे नहीं पता कि किसी ने वोट क्यों दिया है यह जवाब आर। हम स्थैतिक विधि –

8

कई टिप्पणियां:

  1. आप कर सकते हैं नहीं "jQuery से पहुंच सत्र"। आप एचटीएमएल पेज (जावास्क्रिप्ट के साथ) बनाने के लिए एमवीसी और एएसपीनेट का उपयोग करते हैं। सत्र एक सर्वर-साइड ऑब्जेक्ट है, और जावास्क्रिप्ट क्लाइंट साइड पर चलता है।
  2. jQuery's selectors पर एक नज़र डालें। वे :checkbox, :text की तरह उपयोगी चयनकर्ताओं है, आदि
  3. आपका कोड JavaScript का उत्पादन जैसा कि आप उम्मीद: यह संकलित, चलाता है, और true या false सही जगह पर साथ जावास्क्रिप्ट पैदा करता है।
  4. यह तत्व को अक्षम करने का तरीका नहीं है। यदि किसी तत्व में 'अक्षम' विशेषता है तो यह अक्षम हो जाएगा, इससे कोई फर्क नहीं पड़ता। <input type="checkbox" disabled="false" /> भी एक अक्षम चेक बॉक्स है, इसलिए आपके नियंत्रण हमेशा अक्षम होते हैं
  5. हैं कि जिस तरह से तुम वैसे भी चयन है, पर विचार करें:

    var isCoBrowse = <%= Session["Name"].ToString().ToLower() %>; 
    if(!isCoBrowse) //disable controls 
        $(":text,:checkbox,:radio").attr("disabled","disabled"); //standard. 
    

    यह क्लाइंट साइड का उत्पादन करेगा जावा स्क्रिप्ट कोड:

    var isCoBrowse = true; 
    

    और, एक तत्व सक्षम करने के लिए:

    $("input").removeAttr("disabled"); 
    

इसके अलावा, इसके लिए बहुत बेहतर तरीके हैं इसे संकुचित करें। क्या आपने सर्वर पक्ष पर नियंत्रण को अक्षम करने पर विचार किया है, यदि संभव हो तो?

+1

var isCoBrowse = <% = सत्र ["नाम"] में सत्र नहीं प्राप्त कर सकते हैं। ToString()। ToLower()%>; गलत वाक्यविन्यास – sarsnake

+0

# 1 - गलत उत्तर (उदा। var search = @ सत्र ("MyValue") काम करता है) –

+1

@EdDeGagne - क्या मैंने इसे 5 बिंदु पर नहीं लिखा था? जावास्क्रिप्ट सीधे सत्र तक नहीं पहुंच सकता है, और यह भी नहीं जानता कि एक सत्र है। जावास्क्रिप्ट बनाने के लिए सत्र के रूप में, सर्वर पक्ष के रूप में, कुछ और पूरी तरह से है। – Kobi

1

यदि सत्र परिवर्तनीय संवेदनशील डेटा है (जो इस मामले में शायद यह नहीं है), तो मैं इस समाधान का उपयोग नहीं करता क्योंकि यह जावास्क्रिप्ट स्रोत को देखते समय सत्र डेटा दिखाएगा। यदि यह संवेदनशील सत्र डेटा है, तो इसे वेब विधि के माध्यम से एक्सेस करना (ऊपर उत्तर देखें) शायद सबसे अच्छा है।

5
<input id="sessionInput" type="hidden" value='<%= Session["name"] %>' /> 

var getSessionValue = $('#sessionInput').val(); 
-1

आसान! जब आप जानते हैं कि कैसे:

@ एचटीएमएल.एन्कोड (सत्र ("वर्गीकरण टाइटल"))

... और में।js फ़ाइल:

var classificationTitle = document.getElementById('classificationTitle').innerHTML; 

खेद है - मैं पूर्ण एचटीएमएल पोस्ट नहीं कर सकते इस साइट बाहर स्ट्रिप्स कोण कोष्ठक :(

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