2012-08-12 14 views
17

मैं सिर्फ एक एएसपी नेट MVC 4 वेबएपीआई प्रोजेक्ट बनाया।JQuery के बाद शरीर एएसपी नेट MVC 4

डिफ़ॉल्ट _Layout.cshtml को देख में, मुझे लगता है कि jQuery स्क्रिप्ट के बाद शरीर (सिर में नहीं) प्रदान की गई है डाला जा रहा है देखते हैं।

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <meta name="viewport" content="width=device-width" /> 
    <title>@ViewBag.Title</title> 
    @Styles.Render("~/Content/themes/base/css", "~/Content/css") 
    @Scripts.Render("~/bundles/modernizr") 
</head> 
<body> 
    @RenderBody() 

    @Scripts.Render("~/bundles/jquery") 
    @RenderSection("scripts", required: false) 
</body> 
</html> 

यह त्रुटि

$ is not defined 
निश्चित रूप से

का कारण बनता है,

$(document).ready(function() {...}). 

लिखने के _Layout.cshtml करेक्ट्स के सिर अनुभाग में

@Scripts.Render("~/bundles/jquery") 

चलती की कोशिश कर रहा समस्या और jquery wo उम्मीद के रूप में rks।

ऊपर क्या है? मैंने कुछ गलत कर रहा हूँ और वहाँ _Layout.cshtml अंदर Script.Render के डिफ़ॉल्ट स्थान के लिए एक कारण है?

उत्तर

10

स्क्रिप्ट लोड हो रहा है और क्रियान्वित पृष्ठ की प्रस्तुति को ब्लॉक।

आप अपने पृष्ठ के कई भागों में अलर्ट जोड़कर देख सकते हैं। यही कारण है कि पेज के पीछे जेएस फाइलों को रखने की सिफारिश की जाती है।

पृष्ठ के अंत में, जहां jquery जोड़ा गया है, उसके पीछे पृष्ठ स्क्रिप्ट के लिए एक अनुभाग करके आप अपनी समस्या का समाधान भी कर सकते हैं।

संपादित करें: यहाँ उस्तरा में वर्गों के बारे में स्कॉट गुथरी से एक लेख है: http://weblogs.asp.net/scottgu/archive/2010/12/30/asp-net-mvc-3-layouts-and-sections-with-razor.aspx

+0

मैं इसे अपनी cshtml फ़ाइल में कैसे निर्दिष्ट करूं? – Jeff

+0

मैंने रेजर में अनुभागों को समझाते हुए एक लेख के लिंक के साथ उत्तर संपादित किया। मेरी मदद करने के लिए – linkerro

+0

thx। मुझे jquery मुख्य स्क्रिप्ट के निष्पादन के पीछे आंशिक विचारों में सभी अन्य स्क्रिप्ट को धक्का देना पड़ा। – MUG4N

3

@Scripts.Render("~/bundles/jquery") MVC 4 और वी.एस. 2010 के साथ एक समस्या खड़ी कर रहा है जब आप jQuery संवाद बनाने की कोशिश यह समस्या और अधिक स्पष्ट हो जाता है।

जेफएन 825 ने @Scripts.Render("~/bundles/jquery") पर टिप्पणी करने के लिए कहा, एकमात्र तरीका यह है कि।

अब अज्ञात ज्ञात है: @Scripts.Render("~/bundles/jquery") पर टिप्पणी करने का ramification क्या है?

मैं निम्नलिखित jQuery पुस्तकालयों का उपयोग कर रहा:

<script src="../../Scripts/jquery-1.7.2.min.js" type="text/javascript"></script> 
<script src="../../Scripts/jquery-ui-1.8.23.min.js" type="text/javascript"></script> 

नोट: jQuery-1.7.2.min.js से काम नहीं होगा।

0
हालांकि के बारे में कैसे तो यह, एक और अधिक सीधा जवाब इस प्रकार किया जाएगा करने के लिए विवरण के लिए स्वीकार किए जाते हैं जवाब लिंक

:

_Layout.cshtml पंक्ति है ...

@RenderSection("scripts", required: false) 

... जो दृश्य में पाए गए "स्क्रिप्ट" नामक एक अनुभाग डालेंगे - उदाहरण के लिए इंडेक्स.cshtml:

<p>This is Index.cshtml</p> 
@section scripts { 
    <script> 
     $(document).ready(function() { 
     alert("This script is inserted by RenderSection after jQuery script is inserted.") 
     }) 
    </script> 
} 
संबंधित मुद्दे