मुझे रेल और एएसपी.नेट एमवीसी में निम्नलिखित समस्या के साथ कोई समस्या है। अक्सर पृष्ठ पर कार्यक्षमता के कई विजेट होते हैं, फिर भी एक नियंत्रक कार्रवाई पृष्ठ प्रस्तुत करना होता है। मुझे उदाहरण दें:एमवीसी वेब ढांचे में असंबद्ध विचारों के लिए सुरुचिपूर्ण समाधान क्या है?
मान लें कि मेरे पास एक सामान्य ई-कॉमर्स साइट है, और मेनू श्रेणियों से बना है, जबकि पृष्ठ उत्पादों के समूह को प्रदर्शित करना है।
def product_list
@products = Products.find_by_category(:name => 'lawnmowers')
end
और मैं की तरह
<div id="menu"><%= render :partial => 'menu' %></div>
<div id="content"><%= yield %></div>
उत्पादों दृश्य दिखाई देते हैं कुछ के साथ एक लेआउट है:
उत्पादों के लिए, मान मैं एक नियंत्रक पर एक कार्रवाई है कि तरह दिखता है डालते हैं। ..
<%= render :partial => 'product', :collection => @products %>
(ध्यान दें मैं irre के रूप में उत्पाद को देखने ommited गए levant)
और मेनू
<% Category.each {|c| %>
<%= render :partial => 'menu_node', :locals => { :category => c } %>
<% } %>
लाइन मैं के साथ "Category.each.do" दृश्य में है एक समस्या है एक आंशिक है ...। मैं दृश्य में डेटा ला रहा हूं, क्योंकि नियंत्रक में सेट और बाध्य चर का उपयोग करने के विपरीत। और यह आसानी से एक और जटिल विधि कॉल हो सकता है जो मेनू उत्पन्न करता है।
समाधान मैं माना जाता है कर रहे हैं:
-एक दृश्य मॉडल आधार वर्ग जानता है कि कैसे डेटा के विभिन्न टुकड़े प्राप्त करने के लिए। लेकिन आप साइट के प्रत्येक वैचारिक "खंड" के लिए इनमें से एक के साथ समाप्त हो सकते हैं।
-एक स्थानीय चर है कि प्रत्येक विधि (सूखी का उल्लंघन करती है) -इस एक ही बात के शीर्ष पर भरता है, लेकिन एक before_filter कॉल
इनमें से कोई नहीं में मेरे लिए बहुत ही सुंदर लग रहे हैं। मैं मदद नहीं कर सकता लेकिन इस समस्या को देखता हूं और सोचता हूं कि एक एमवीपी प्रस्तुतकर्ता प्रति दृश्य (स्क्रीन नहीं) एक और अधिक सुरुचिपूर्ण समाधान है।
एएसपी.NET एमवीसी ने कार्रवाई प्रस्तुत की है (रेल रेंडर से अलग: कार्रवाई), जो इसे संबोधित करता है, लेकिन मुझे यकीन नहीं है कि मैं उस समाधान के बारे में क्या सोचता हूं।
विचार? समाधान सुझाव?
जोड़ा गया नोट: अब तक दिए गए उत्तरों अच्छे सुझाव हैं। और वे मेरे द्वारा दिए गए उदाहरण पर लागू होते हैं, जहां प्रत्येक लेआउट में मेनू मौजूद होता है, और उत्पाद डेटा के लिए स्पष्ट रूप से माध्यमिक होता है।
हालांकि, अगर कोई दूसरा वर्ग नागरिक स्पष्ट रूप से नहीं है तो क्या होगा? पोर्टल प्रकार साइटों में आमतौर पर कई असंबद्ध विजेट होते हैं, जिनमें प्रत्येक महत्वपूर्ण है।
उदाहरण के लिए, यदि यह पृष्ठ मौसम के रुझान प्रदर्शित कर रहा था, तापमान, आर्द्रता और वर्षा के लिए विजेट (और प्रत्येक एक अलग मॉडल और दृश्य प्रकार है)।
उत्कृष्ट प्रश्न। मैं इसके साथ भी संघर्ष कर रहा हूं, क्योंकि मेरे ऐप में कई 'विजेट' की संभावना है। मुझे लगता है कि प्रत्येक विजेट में इसका स्वयं का नियंत्रक होना चाहिए जो जानता है कि इसे कैसे डेटा भेजना है, लेकिन यह सुनिश्चित नहीं है कि इसे एएसपी.नेट एमवीसी में कैसे कार्यान्वित किया जाएगा। –
मैं इन परिदृश्यों में रेंडरएक्शन का उपयोग करता हूं, लेकिन जैसा कि आपने कहा है, यह बिल्कुल सही नहीं है। – DanP
डैनपी, क्या आप रेल या एएसपीएनटी एमवीसी का जिक्र कर रहे हैं? –