2015-07-10 7 views
6

के भीतर संशोधित नहीं होता है मैं नियंत्रक के कन्स्ट्रक्टर के भीतर एक संपत्ति शुरू करता हूं।सी # संपत्ति मूल्य जावास्क्रिप्ट/jquery

public BookController() 
{ 
    SessionProvider.SessionLoadSceanrio = false; 
} 

मेरे पास एक एक्शन विधि है जो एक बटन क्लिक ईवेंट पर फिर से संपत्ति को रीसेट करता है।

public ActionResult LoadScenario(int bookId) 
{ 
    SessionProvider.SessionLoadSceanrio = true; 
    // remaining code 
    return Json(ScenarioId, JsonRequestBehavior.AllowGet); 
} 

निम्नलिखित जावास्क्रिप्ट कोड मेरे दृश्य में है जिसे बटन क्लिक करने पर बुलाया जाता है।

var BookHandler = { 
    $("#btnLoadScen").click(function (e) { 
       $.ajax({ 
        url: "@Url.Action("LoadScenario", "Book")", 
         dataType: 'json', 
         type: 'POST', 
         data: { 
          'bookId': BookHandler.getBookId() 
         }, 
         success: function (response) { 
          var scenarioId = response; 
          var isLoadScenario = "@Portal.Presentation.Web.Planning.MVC.App_Start.SessionProvider.SessionLoadSceanrio"; 
          //otherproperties 
          window.open("@Url.Action("Index", "BookScenario", new {loadScenario = "_loadScenario"}).replace('_loadScenario', isLoadScenario), tabId); 

         }, 
         error: function() { 
         } 
        }); 

       }); 
} 

मेरी समस्या तब होती है जब मैं बटन पर क्लिक करता हूं, नियंत्रक में संपत्ति परिवर्तन का मूल्य। लेकिन यह मेरे जावास्क्रिप्ट कोड में नहीं बदलता है। कृपया डेवलपर टूल की स्क्रीन कैप्चर देखें।

ScreenCapture

करता है कोई भी इस पर एक सुराग है?

+0

मुझे लगता है कि कंसोल में एक त्रुटि है। यह क्या कहता है? – Tushar

+0

आपके द्वारा चिपकाया गया कोड स्क्रीनशॉट से अलग है। क्या आप वाकई इसे चलाने के दौरान एक ही कोड का जिक्र कर रहे हैं? –

+0

thushar .. यह सीएसएस त्रुटि है .. हम इसे अनदेखा कर सकते हैं .. –

उत्तर

4

आप उस्तरा सिंटैक्स का उपयोग कर रहे हैं। फिर प्रारंभ में पृष्ठ लोड किया गया, मान सेट किए गए हैं, और ये मान स्ट्रिंग हैं, अब एक चर नहीं है। तो आप सत्र मूल्य फिर से अपडेट नहीं कर सकते हैं।

कृपया AJAX कॉल से सत्र मान प्राप्त करें और अपने चर पर सेट करें।

3

नीचे दिए गए कोड का मूल्यांकन केवल सर्वर से देखने के बाद किया जाएगा और आपके AJAX कॉल के बाद फिर से मूल्यांकन नहीं किया जाएगा।

var isLoadScenario = "@Portal.Presentation.Web.Planning.MVC.App_Start.SessionProvider.SessionLoadSceanrio"; 

आपके द्वारा किए गए कार्यों को करने के लिए, आपको अपनी प्रतिक्रिया में सत्रLoadSceanrio वापस करने की आवश्यकता होगी।

आप इसे पसंद कर सकते हैं:

public ActionResult LoadScenario(int bookId) 
    { 
     SessionProvider.SessionLoadSceanrio = true; 
     // remaining code 
     return Json(new {ScenarioId, SessionLoadSceanrio = SessionProvider.SessionLoadSceanrio}, JsonRequestBehavior.AllowGet); 
    } 
संबंधित मुद्दे