2013-01-20 12 views
7

फेंकता है यह मेरा उस्तरा कोड जो त्रुटि फेंकता है:asp.net MVC के 4 जावास्क्रिप्ट अंदर उस्तरा ब्लॉक त्रुटि

@section script 
{ 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      @if (TempData["Message"] != null) 
      { 
       showNotification("'" + TempData["Message"].ToString() + "'"); 
      } 
     }); 
    </script> 
} 

इसे कहते हैं showNotification मौजूद नहीं है। ऐसा लगता है कि यह एक सी # कोड है जहां यह जावास्क्रिप्ट फ़ंक्शन है। क्या कोई मुझे बता सकता है कि मैं इस त्रुटि को कैसे ठीक करूं? धन्यवाद!

+0

मैं जानता हूँ कि क्या यह उत्तर नहीं है, और लोगों को आप कई तरीकों में से एक इसे ठीक करने के दिखा देंगे कि (@: एक के लिए सिंटेक्स)। मैं सिर्फ @if कथन को पूरी तरह से हटा दूंगा, और स्पष्ट रूप से ToString() को कॉल नहीं करता हूं लेकिन इसे स्पष्ट रूप से बुलाया जाना चाहिए। यह –

+0

काम करेगा TempData के साथ समस्या यह है कि यदि TempData ["Foo"] शून्य है, तो आपको एक एनपीई मिलता है। तो ViewBag का उपयोग करें – DarthVader

उत्तर

15

इसके आसपास text टैग फेंक दें, क्योंकि संकलक सोचता है कि आपकी जावास्क्रिप्ट रेजर सिंटैक्स है। जब आप ऐसा करते हैं, तो आपको TempData कॉल में @ जोड़ने की आवश्यकता होगी।

@section script 
{ 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      @if (TempData["Message"] != null) 
      { 
       <text>showNotification('@TempData["Message"].ToString()');</text> 
      } 
     }); 
    </script> 
} 
6

@ मार्टिन जवाब देने के लिए इसके अलावा, आप भी डाल सकते हैं @: showNotification कॉल के सामने। @: वाक्यविन्यास रेजर को HTML के रूप में उस एकल रेखा का इलाज करने के लिए कहता है, जहां रेज़र को टेक्स्ट टैग के भीतर HTML के रूप में कुछ भी इलाज करने के लिए कहा जाता है (बहु रेखा के लिए उपयोगी, जहां @: एकल रेखा के लिए अच्छा है)।

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