2009-10-29 18 views
5

से AJAX का उपयोग करके आंशिक दृश्य लोड करता है मेरे पास मेरे नियंत्रक पर कई क्रिया विधियां हैं जो आंशिक दृश्य (ascx) लौटाती हैं, और मैं अलग-अलग JQuery पर क्लिक करते समय इन आंशिक दृश्यों को प्रस्तुत करना चाहता हूं यूआई टैबAsp.Net MVC एक JQuery UI टैब

टैब इस तरह परिभाषित कर रहे हैं:

<div id="tabs"> 
    <li><a href="#FirstTab" title="First tab">First tab</a></li> 
    <li><%= Html.ActionLink("General", "General", new {id=Model.Id}) %></li> 
    <li><%= Html.ActionLink("Details", "Details", new {id=Model.Id}) %></li> 
    <div id="FirstTab"> 
    ... 
    </div> 
</div> 

इस टैब ठीक renders, पहला टैब (स्थिर सामग्री के साथ) सही ढंग से प्रदर्शित किया जाता है, लेकिन जब मैं अन्य टैब पर क्लिक करें, कुछ नहीं होता।

यदि कार्रवाई विधियों से आंशिक दृश्य लौटने की बजाय मैं केवल सादा सामग्री लौटाता हूं, तो यह सामग्री को ठीक से प्रस्तुत करता है और टैब पूरी तरह से काम करते हैं।

कोई विचार क्या मैं गलत कर रहा हूं?

धन्यवाद

+1

अब तक सब कुछ अच्छा लग रहा है। क्या आप जांच सकते हैं कि AJAX कॉल वास्तव में हो रहा है या नहीं? और यदि यह हो रहा है, तो कार्रवाई से क्या वापस किया जा रहा है? आप इसे फायरबग जैसे टूल के साथ आसानी से देख सकते हैं। –

+0

हाय जॉनी, हाँ, कॉल हो रहा है (मैंने कार्यों में ब्रेकपॉइंट लगाए और वे हिट हुए)। मैंने एएसएक्स के बजाय एएसपीएक्स पृष्ठों का उपयोग कर समस्या तय की है (एएसपीएक्स पृष्ठों में एचटीएमएल, हेड या बॉडी टैग नहीं हैं, केवल नियंत्रण जो मैं प्रस्तुत करना चाहता हूं)। हालांकि यह अजीब लगता है, या शायद यह है कि मैंने व्यू और आंशिक दृश्य – willvv

+0

के बीच अंतर स्पष्ट नहीं किया है, मुझे खुशी है कि आप एक समाधान समाधान ढूंढ पाए। –

उत्तर

9

अरे, मैंने हाल ही में एक ही काम किया है। मैं क्रम में सरलीकृत अधिक स्पष्ट होना:

एचटीएमएल:

<div class="tabs"> 
       <ul> 
        <li> 
         <a onclick="TabItemClicked(this,<%=Url.Action("General", new {id=Model.Id}) %>))" href="#fragment1"> 
         <span>General</span> 
         </a> 
        </li> 
        <li> 
         <a onclick="TabItemClicked(this,<%= Html.ActionLink("Details", new {id=Model.Id}) %>))" href="#fragment2"> 
         <span>Details</span> 
         </a> 
        </li> 
       </ul> 
       <div id="fragment1"></div> 
       <div id="fragment2"></div> 
    </div> 

और JQuery कोड:

function TabItemClicked(a, action) { 

    var container = $(a).parents('div.tabs'); 
    var resultDiv = $($(a).attr('href'), container); 

    $.ajax({ 
     type: "POST", 
     url: action, 
     data: {}, 
     success: function(response) { 
      resultDiv.html(''); 
      resultDiv.html(response); 
     } 
    }); 
} 
+0

धन्यवाद, मुझे पता है कि यह काम करेगा, लेकिन मैं इसे JQuery UI टैब की डिफ़ॉल्ट कार्यक्षमता के साथ प्राप्त करने की कोशिश कर रहा था ... – willvv

+0

ओह, ठीक है। खैर, स्वीकार करने के लिए धन्यवाद :) –