2012-01-08 14 views
8

मैं एक दृश्य के पृष्ठ हैasp.net MVC के partialview @ Ajax.ActionLink काम नहीं करता है

मेरे विचार पेज

<div id="beReplaced"> 
    @Ajax.ActionLink("please click on me to bring the partial view", 
        "PatrialViewToBeCalled", 
        new AjaxOptions() 
         {UpdateTargetId = "beReplaced", 
         InsertionMode = InsertionMode.InsertAfter, 
         HttpMethod="Get", 
         LoadingElementId = "prgress" }) 
</div> 

मैं एक नियंत्रक है

public PartialViewResult PatrialViewToBeCalled() 
{ 
    var customer = db.Customers.First(); 

    return PartialView("PartialViewThatMustBeShow",customer); 
} 

लेकिन जब मैं क्लिक करें जेनरेट लिंक पर यह मुझे के बजाय div टैग पर आंशिक दृश्य को बदलने या जोड़ने के बजाय मुझे एक नए पृष्ठ पर लाता है।

समस्या क्या है?

+3

मुझे समाधान मिला। समस्या दूषित unobtrusive-ajax.min.js फ़ाइल के कारण थी। – 1AmirJalali

+0

आपको इसे एक समाधान के रूप में पोस्ट करना चाहिए और इसे बंद करके – Shenaniganz

+0

बंद करना चाहिए? मुझे इसे कैसे बंद करना चाहिए? – 1AmirJalali

उत्तर

1

मुझे समाधान मिला। समस्या दूषित unobtrusive-ajax.min.js फ़ाइल के कारण थी।

0

यदि आपके पास jQuery को आपके पृष्ठ में लोड किया गया है, तो आंशिक दृश्य प्राप्त करने के लिए सरल jquery get/load विधि का उपयोग क्यों न करें?

<div id="beReplaced"> 
    <a href="#" id="lnk1">please click on me to bring the partial view</a> 
</div> 

जावास्क्रिप्ट

$("#lnk1").click(function(){ 
$.get('/controller/PatrialViewToBeCalled', function(data) { 
     $('#beReplaced').html(data); 
     }); 
}); 
+0

उत्तर के रूप में चिह्नित करें क्योंकि मैं अपना विचार साफ रखने की कोशिश कर रहा हूं और इसे जितना संभव हो उतना छोटा कर सकता हूं और एमवीसी में अजाक्स सहायकों में जटिल वक्तव्य बनाने की शक्ति है। – 1AmirJalali

+1

मैं अपने विचारों को साफ रखने चाहते हैं, मैं विनीत principle.I साथ रहना होगा इस jQuery दृष्टिकोण महसूस (जहां मैं केवल html मार्कअप को देखने के लिए के रूप में मैं कर सकता हूँ उतना ही चाहते हैं दृश्य के अंदर अपने ajax पैरामीटर तरीकों देने की तुलना में बहुत क्लीनर है) – Shyju

+0

डाउनवॉटर? टिप्पणी करने की देखभाल? – Shyju

10

यह हो सकता था कि आप अनदेखा कर रहे थे:

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script> 

मुख्य ध्यान में रखते हुए। यह AJAX सहायक को पहचानने के मुख्य दृश्य को बताता है।

+0

+1 जिसने इसे मेरे लिए हल किया - बहुत बहुत धन्यवाद। – EM0

0

आप एएसपी नेट MVC 4 के साथ काम कर रहे हैं, तो सुनिश्चित करें कि

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

रूप में अच्छी तरह शरीर टैग के अंत में है।

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

मैं अभी भी बहुत लंबे समय तक इस पर काम कर रहा हूं, सोच रहा हूं कि यह काम नहीं करता है। पेज स्रोत को देखने से कुछ भी नहीं दिखाया गया।

आखिरकार, मुझे पता चला कि यह वास्तव में काम किया जब मैं Firebug के कंसोल में सफल अनुरोध को देखा। यह केवल इसे स्क्रीन से दिखा रहा था। फायरबग के एचटीएमएल टैब में मुझे अंत में आउटपुट मिला, भले ही यह पेज स्रोत में दिखाई न दे।