2013-04-18 9 views
6

मुझे यह छोटी समस्या है ... मेरे पास यह एएसपीनेट वेबसाइट है। मेरे पास एक मेनू है, सब कुछ एचटीएमएल और सीएसएस के साथ किया जाता है। तो जब मैं घर पर क्लिक करता हूं, तो AJAX अन्य सामग्री को निर्दिष्ट div तत्व में लोड करता है। कार्य 100%।jQuery AJAX और ASP.NET

div तत्व में लोड की गई सामग्री में, मेरे पास एक बटन है। एक एएसपी.नेट बटन।

जब मैं बटन पर क्लिक करता हूं, तो यह मुझे "संसाधन नहीं मिला।" त्रुटि।

मुझे कुछ याद आना चाहिए। आप न तो समझते हैं, यहाँ ajax:

//Load the Home page on click. 
$(document).ready(function() { 
    $('.home').click(function() { 
     $("#content").load("html/home/home.aspx"); 
    }); 
}); 

अब aspx पेज है कि सामग्री div में लोड किया गया था, एक बटन को प्रदर्शित करता है, btnAdd:

<asp:Panel ID="pnlAddNewBlog" runat="server"> 
    <asp:TextBox ID="txtAddNewBlog" runat="server" TextMode="MultiLine"></asp:TextBox> 
    <br /> 
    <asp:Button ID="btnAdd" runat="server" Text="Add" /> 
</asp:Panel> 

जब मैं उस बटन पर क्लिक करें, त्रुटि प्रकट होता है।

जो मैं प्राप्त करना चाहता हूं वह यह है कि: जब उपयोगकर्ता बटन पर क्लिक करता है, तो txtAddNewBlog में टेक्स्ट डेटाबेस में जोड़ा जाता है। अब यह मैं सी # का उपयोग कर प्राप्त कर सकता हूं ... लेकिन अगर यह त्रुटि मेरे रास्ते में नहीं है। कोई विचार?

+0

क्या 'html/home/home.aspx' मौजूद है? ब्राउजर भेज रहे नेटवर्क अनुरोध को देखने का प्रयास करें। यह सुनिश्चित करने के लिए उस यूआरएल पर नेविगेट करें। – Danny

+0

हां, यह अस्तित्व में है, क्योंकि AJAX होम सामग्री में सभी सामग्री को #content में लोड करता है और मैं इसे देख सकता हूं। लेकिन जब मैं कपास पर क्लिक करता हूं। यह तब काम करता है जब मेरे पास AJAX सामग्री को लोड नहीं किया जाता है ... लेकिन जब AJAX इसमें आता है तो –

+1

काम नहीं करता है '# सामग्री' किसी अन्य रूप में रखा गया है? यदि हां, तो आप दूसरे पेज को लोड करते समय HTML स्ट्रक्चर तोड़ते हैं। – Aristos

उत्तर

1

समस्या form बनने जा रहा है जो बनाई गई है। जब आप यह अनुरोध करते हैं, तो एएसपी.नेट एक फॉर्म तैयार करेगा जिसका लक्ष्य home.aspx है, न कि इसका पूरा मार्ग। लेकिन आप उस फॉर्म को एक HTML पृष्ठ पर डंप कर रहे हैं जो एक अलग स्तर पर है।

जब आप कोई फॉर्म पोस्ट करते हैं, तो यह home.aspx पर पोस्ट करने का प्रयास करता है, जहां ब्राउज़र सोचता है कि यह कहां है, जो दो स्तर ऊपर है, और इसे नहीं मिला।

मुझे नहीं पता कि ऐसा करने का कोई अच्छा तरीका है - एएसपी.नेट इस तरह की चीज़ को संभालने के लिए नहीं है। आप एक आईएफआरएएम कर सकते हैं। आप home.aspx सामग्री को उपयोगकर्ता नियंत्रण में लपेट सकते हैं, और बाहरी पृष्ठ पर एएसपी.नेट फॉर्म छोड़ सकते हैं। या आप फॉर्म के लक्ष्य में हेरफेर करने में सक्षम हो सकते हैं ताकि आप सही जगह पर पोस्ट कर सकें। लेकिन मुझे नहीं लगता कि उनमें से कोई भी बहुत मजेदार होगा।

+0

वेबफॉर्म बनाने और बस "Response.Redirect" को बेहतर बनाने और पूरे पृष्ठ को फिर से लोड करना बेहतर है ??? –

+0

मेरी राय, हां, वर्तमान आर्किटेक्चर के साथ, सबसे अच्छा शर्त वास्तव में AJAX-ify के बजाय रीडायरेक्ट करना होगा। उपयोगकर्ता को पेज रीलोड से निपटना होगा, लेकिन अधिकांश वेब अभी भी इस तरह से काम करता है। यदि आप इससे बचना चाहते हैं, तो मैं एएसपी.नेट वेबफॉर्म पेज लाइफसाइकिल के बिना समाधान बनाने की सलाह दूंगा - सिंगल-पेज ऐप्स आमतौर पर बहुत जावास्क्रिप्ट-गहन होते हैं, इसलिए आर्किटेक्चर पारंपरिक वेबफॉर्म ऐप से बहुत अलग होगा। आपका सर्वर कोड क्लाइंट कोड के लिए नेविगेशन छोड़कर पारंपरिक मार्कअप और पोस्ट बनाने में संभाल सकता है। –