6

मुझे एएसपी.नेट एमवीसी 5 प्रोजेक्ट में jQuery लोडिंग समस्या का सामना करना पड़ रहा है। मैं एक आंशिक दृश्य लोड करने के लिए कोशिश कर रहा हूँ तो मैं का इस्तेमाल किया हैआंशिक दृश्य समस्या - jQuery परिभाषित नहीं

@ Html.Action ("GetView", "घर")

आंशिक दृश्य कुछ jQuery कार्यों में शामिल है। जब यह लोड होता है तो यह jQuery को परिभाषित संदेश नहीं दिखाता है, लेकिन jQuery मुख्य पृष्ठ पर काम कर रहा है।

तो मैं आंशिक दृश्य लोड करने के लिए दो अन्य तरीकों की कोशिश की है और इन तरीकों के साथ jQuery का कोई मुद्दा

@Html.Partial("_viewname") 

@Ajax.BeginForm() 

होम नियंत्रक

public class HomeController : Controller 
    { 

     public ActionResult Index() 
     { 
      return View(); 
     } 

     public ActionResult GetView(string id = "") 
     { 
      return PartialView("_ViewName"); 

     } 
    } 

_Layout.cshtml

है
<!DOCTYPE html> 
<html> 
<head> 
    <title>@ViewBag.Title</title> 
    <meta name="viewport" content="initial-scale=1.0,maximum-scale=1.0,user-scalable=no"> 
    <link rel="shortcut icon" type="image/x-icon" href="favicon.ico"> 
    @Scripts.Render("~/bundles/modernizr") 
    @RenderSection("Head", false) 
</head> 
<body> 
    <section > 
     <div> 
      @RenderBody() 
     </div> 

     <div> 
      @RenderSection("Sidebar", false) 
     </div> 

    </section> 

    <!-- jQuery --> 
    @Scripts.Render("~/bundles/jquery") 
    @RenderSection("Scripts", false) 
</body> 

जनक पृष्ठ Index.cshtml

@{ 
    ViewBag.Title = "Admin"; 
} 

<div id="main_content"> 
    @Html.Action("GetView", "Packages") 
</div> 

_view.cshtml आंशिक देखें

<div class="row"> 
    <div class="col-sm-12"> 
     <select> 
      <option>1</option> 
      <option>2</option> 
     </select> 
    </div> 
</div> 


<script type="text/javascript"> 

    $(document).ready(function() { 
     $("select").addClass("form-control"); 
    }); 

</script> 

मुझे लगता है कि कुछ jQuery लोड करने की समस्या नहीं है, लेकिन मैं यह क्यों समझ में नहीं आता विशिष्ट कार्रवाई पर हो रहा है।

कृपया मुझे इस मुद्दे के लिए समाधान का सुझाव दें।

+1

पेज कि आंशिक दृश्य का प्रतिपादन शामिल कहां है? –

+0

क्या आप आंशिक दृश्य और अभिभावक दृश्य कोड देख सकते हैं? –

+0

अपने आंशिक –

उत्तर

13

आपके विचार (आंशिक विचार नहीं) को @section Scripts ब्लॉक में कोड शामिल करने की आवश्यकता है। जैसा कि आपने @section को इंगित किया है आंशिक दृश्यों में काम नहीं करते हैं।

माता पिता दृश्य में अपने कोड सुनिश्चित इस तरह से एक में है:

@section Scripts{ 
    <script> 
     // DOM ready handler if needed 
     $(function(){ 
       // Your Javascript/jQuery code here 
     }); 
    </script> 
} 

@section निर्देश जहां मास्टर पृष्ठ में इस ब्लॉक सम्मिलित करने के लिए दृश्य बिल्डर बताता है। जावास्क्रिप्ट के साथ आपको हमेशा स्क्रिप्ट अनुभाग में रहने की आवश्यकता होती है, या इसे घोषित किया जाएगा जहां इसे घोषित किया गया था।

विकल्प मास्टर पृष्ठ में RenderBody() कॉल से पहले करने के लिए jQuery शामिल किए जाने के ले जाने के लिए है:

<!DOCTYPE html> 
<html> 
<head> 
    <title>@ViewBag.Title</title> 
    <meta name="viewport" content="initial-scale=1.0,maximum-scale=1.0,user-scalable=no"> 
    <link rel="shortcut icon" type="image/x-icon" href="favicon.ico"> 
    @Scripts.Render("~/bundles/modernizr") 
    @RenderSection("Head", false) 
    <!-- jQuery --> 
    @Scripts.Render("~/bundles/jquery") 
</head> 
<body> 
    <section > 
     <div> 
      @RenderBody() 
     </div> 

     <div> 
      @RenderSection("Sidebar", false) 
     </div> 

    </section> 

    @RenderSection("Scripts", false) 
</body> 

बंडलों के उपयोग से संबंधित ब्राउज़र कैशिंग का मतलब केवल बहुत पहले पृष्ठ लोड पर एक छोटा सा अक्षम हो जाएगा अपने साइट।

+0

मुझे लगता है कि sesion हाँ, मैं भी सिर में जे एस उपयोग करने के लिए सोच रहा हूँ, लेकिन मैं अगर उपलब्ध समाधान खोजने के लिए कोशिश कर रहा हूँ आंशिक दृश्य –

+0

में नहीं काम करता है करता है! –

+1

@AskQuestion: आप सही हैं (कि बारे में भूल गया)। उत्तर अद्यतन किया है। आप को देखने के लिए आंशिक प्रतिपादन निहित अपने कोड के लिए कदम या jQuery के लिए कदम अप करने के लिए (दोनों विकल्प दिए गए हैं) की जरूरत है। –

0

यदि आपको आंशिक दृश्य पर स्क्रिप्ट चलाने की ज़रूरत है, तो जब मामला गतिशील रूप से बनाई गई सामग्री को AJAX कॉल से आंशिक दृश्यों को कॉल करते समय वापस किया जाता है, तो आपको यह पता होना चाहिए कि प्रश्न में वर्णित समस्या वास्तव में प्रारंभिक माता-पिता पर होती है पेज लोड यदि ऐसा है, तो आप प्राथमिक दृश्य पर आंशिक लोड करके समस्या के आसपास काम कर सकते हैं। इसके बजाय, आप प्रारंभिक पृष्ठ लोड के बाद JQuery का उपयोग करके आंशिक दृश्य लोड कर सकते हैं।

तो, प्राथमिक दृश्य पर HTML के साथ इस इनलाइन कर के बजाय:

@Html.Partial("YourCoolDynamicDashboard") 

एक .js फ़ाइल में या अपने प्राथमिक दृश्य की जावास्क्रिप्ट टैग के भीतर इस कार्य करें:

$(document).ready(function() { 
     $.get("/YourController/YourCoolDynamicDashboard", [<... data goes here...>], function (result) { 
      $("#YourDashboardContainer").html(result);  
     }); 
}); 

इस काम आसपास के आप प्राथमिक दृश्य और आंशिक दृश्य दोनों में क्लाइंट-साइड JQuery कोड चलाने की अनुमति देंगे।

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