2009-09-10 15 views
5

देखकर मानो हमारी टीम एक इंट्रानेट जो ग्राहकों उपयोगकर्ताओं जावास्क्रिप्ट के लिए गारंटी है बनाए रखने के सक्षम हम जानते हैं कि हम में कदम और अधिक "अच्छी तरह से" jQuery का उपयोग शुरू कर सकते हैं। हमारी प्रणाली बहुत बड़ी है, भले ही हम अपने एएसपी.नेट एमवीसी अनुप्रयोगों में क्षेत्रों का उपयोग करते हैं, फिर भी क्षेत्र की प्रति उप-प्रणाली डेटा के सेट जोड़ने, संपादित करने, हटाने और देखने के लिए पृष्ठों की बहुत अधिक मात्रा वास्तव में काफी बड़ी है। किसी क्षेत्र की उप-प्रणाली में लगभग बीस टेबल डेटा हो सकते हैं। यदि डेटा के बीस टेबल हैं, और आपके पास अलग-अलग पृष्ठ हैं, उन्हें जोड़ने, संपादित करने, हटाने और देखने के लिए इसका अर्थ है कि कुल पृष्ठ हैं। अब कल्पना करें कि प्रति क्षेत्र बीस उप-प्रणालियों हैं, फिर एक क्षेत्र में 20 * 60 पृष्ठ होंगे, और हमारे इंट्रानेट पर लगभग 15 क्षेत्र हैं। आप बिंदु प्राप्त करते हैं, यह बहुत बड़ा है।jQuery CRUD ASP.NET MVC में

मेरे असली बिंदु पर जाने के लिए, मैं एक पृष्ठ पर डेटा की एक तालिका रखने, "हटाएं" मारने की jQuery क्षमताओं का उपयोग करके इसे कम करना चाहता हूं और यह मुझे एक पुष्टिकरण बटन के साथ एक डिलीट संवाद दे रहा है जो फिर फॉर्म जमा करें, सही कार्रवाई पर रीडायरेक्ट करें और मेरे लिए काम करें। अब मुझे निम्नलिखित क्षेत्रों में कुछ मार्गदर्शन की आवश्यकता है:

  1. अगर मैं एएसपी.नेट एमवीसी का उपयोग करके वापस पोस्ट किए बिना हटाना चाहता हूं, तो ऐसा करने की प्रक्रिया क्या है? इसमें हटाना बंद करना शामिल है, यह जा रहा है और इसे हटाने में सक्षम है (एफके रिश्तों को सही तरीके से निपटाया जाना चाहिए), फिर यदि इसे हटाने में सक्षम है और तालिका में पंक्ति से पंक्ति को हटा रहा है, तो सभी पृष्ठ को रीफ्रेश किए बिना।
  2. मैं jQuery का उपयोग कर एसिंक्रोनस प्रक्रिया से हटाए गए क्रिया को कैसे कॉल करूं? क्या ऐसा करना बुद्धिमानी है? आमतौर पर हम Html.ActionLink का उपयोग करते हैं। क्या मुझे इसे एक रूप में लपेटना होगा?
  3. संपादन और अद्यतन करने के लिए यह वही है, फिर से, ऐसा करने का सबसे अच्छा तरीका क्या है?

मैं एक सुरुचिपूर्ण समाधान की तलाश में हूं, और कुछ ऐसा जो मुझे हर पृष्ठ के लिए आवेदन करना मुश्किल नहीं है, मुझे इसे करना है। किसी भी निवेश की बहुत सराहना की जाएगी।

+1

बस उत्सुक आप एमएस से गतिशील डेटा फ्रेमवर्क में देखा है? मुझे लगता है कि यह एमवीसी का समर्थन कर सकता है लेकिन सकारात्मक नहीं। अगर मैं इसे सही ढंग से समझता हूं तो यह आपके पृष्ठों की संख्या में कटौती करेगा। जैसा कि मैंने कहा कि अगर आप इसे इस साइट के लिए देखते हैं तो बस उत्सुक है। – JoshBerke

+2

गतिशील डेटा एमवीसी के साथ अच्छी तरह से नहीं खेलता है, लेकिन एमवीसी 2 में डिफ़ॉल्ट टेम्पलेट किए गए विचार हैं, जो आपको निर्मित डायनेमिक डेटा के अधिक उपयोगी हिस्सों को देते हैं। –

उत्तर

3

मैं एक परियोजना AJAX के पोस्ट (कोई पोस्टबैक) के माध्यम से नष्ट कार्रवाई बंद आग करने के लिए लिंक का उपयोग करता है पर काम कर रहा हूँ।

$("a.deleteLink").click(function(event) 
{ 
    event.preventDefault(); 
    if (confirm("Are you sure you want to delete this section?")) 
    { 
     //TODO Display processing indicator 

     var myId = /* id of element */ ; 

     $.post("/Section/Delete", { id: myId }, function(data) 
     { 
      if (data == "Success") 
      { 
       //handle success 
       //TODO Fade out element using .fadeOut() 
      } 
      else 
      { 
       //handle error 
      } 
     }); 
    } 
}); 

नियंत्रक विधि बस/नियंत्रक /SectionController.cs में है। केवल POST स्वीकार करता है जैसे किसी भी क्रिया को डेटाबेस में बदलना चाहिए।

private SectionRepository secRepo = new SectionRepository(); 

    [AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult Delete(long id) 
    { 
     Section sec = secRepo.GetById(id); 

     secRepo.Delete(sec); 
     secRepo.Save(); 

     return Content("Success"); 
    } 
+1

मुझे लगता है कि यह अच्छा लग रहा है। मुझे लगता है कि आपका '// TODO डिस्प्ले प्रोसेसिंग इंडिकेटर' .post() 'क्रिया के ऊपर/पहले एक पंक्ति पर है, हालांकि, कॉलबैक फ़ंक्शन में यह नहीं है (जो आपकी कार्रवाई पूरी होने के बाद ही * आग लग जाएगा , जबकि आप प्रतीक्षा कर रहे हैं ...) – Funka

+1

ओह, यह अच्छा लग रहा है। मैंने कभी 'रिटर्न कंटेंट ("संदेश") नहीं देखा है; पहले। आप कैसे करते हैं 'अगर (पुष्टि करें ("संदेश") == सत्य) '? क्यों न सिर्फ 'अगर (पुष्टि करें ("संदेश")) '? – Kezzer

+0

आप लोग सही हैं। यह अभी भी बहुत जल्दी "त्वरित और गंदे" कोड है। नियंत्रक में वापसी सामग्री ("सफलता") प्रदर्शन के लिए नहीं थी। जावास्क्रिप्ट को यह जानने के लिए बस कुछ सफल था। अगर किसी को अजाक्स पोस्ट सफल होने की जांच करने के बेहतर तरीकों के लिए सुझाव हैं तो मुझे बताएं। मैंने इन वस्तुओं को प्रतिबिंबित करने के लिए नमूना कोड को थोड़ा सा अद्यतन किया। –

2

चाड मायर्स के पास good article है।

डिनो एस्पोजिटो से one भी।

+0

डिनो काफी जानकारीपूर्ण और पूर्ण लगता है। हालांकि, मुझे इसके बाद बाद में बेहतर पढ़ना होगा। – Kezzer

3

बस कुछ templating पर एक वीडियो देखने के लिए किया गया है कि आप Subsonic के साथ एएसपी.नेट एमवीसी के लिए प्राप्त कर सकते हैं। जबकि मैंने अभी भी इसे लागू नहीं किया है या यहां तक ​​कि इसे भी आजमाया है, यह अविश्वसनीय लग रहा है! here देखें।


मैं अगर यह आपके या नहीं लिए अनुकूल विकल्प है यकीन नहीं है, लेकिन हम हाल ही में एक की जरूरत आपके जैसा था और हम एक ASP.NET MVC आवेदन ( jQgrid का प्रयोग करके) के रूप में हमारे प्राथमिक आवेदन रिलीज और फिर गतिशील डेटा का उपयोग कर हमारे व्यवस्थापक सुविधाओं के लिए एक माध्यमिक एएसपी.NET वेब फॉर्म एप्लिकेशन। इसने बहुत अच्छी तरह से काम किया है और हमें एक टन बचाया है।

यह भी लगता है कि DynamicData and MVC अगले कुछ रिलीज़ में एक साथ आ जाएगा।

अन्य पढ़ने ...
* David Hayden
* rbqsoft
* Sharp Architecture Wiki

0

आप भी पार्टी के लिए jQuery संवाद फेंक करना चाहते हैं, इस Ricardo Covo post एक अच्छा काम

enter image description here