2010-12-10 10 views
7

मैं आज रेजर को ViewPages से एक काफी नई परियोजना आगे बढ़ रहा है लौटने के लिए, और सब कुछ ठीक जा रहा जा रहा है। सिवाय इसके कि मैं उपयोगकर्ता नियंत्रण प्रदान करने के लिए HTML.Action का उपयोग करने का प्रयास कर रहा हूं और यह कुछ भी प्रस्तुत नहीं करेगा।Asp.Net MVC 3 - @ Html.Action प्रस्तुत करना होगा नहीं/किसी भी HTML

तो मैं निम्नलिखित है एक साझा/_Layout.cshtml फ़ाइल जो घर/Index.cshtml

Index.cshtml में संदर्भित है है: BlogsController में

<article> 

@Html.Action("LatestBlogsMainPanelWidget", "Blogs") 

... 

</article> 

मैं डाल दिया है जाल, तो मुझे पता है कि अनुरोध किया जा रहा है। मुझे यह भी पता है कि एक मॉडल के लिए वापस आ जा रहा है, कि LatestBlogsMainPanelWidget दृश्य इंजन द्वारा पाया जा रहा है, और भी कुछ डमी उस्तरा वाक्य रचना कोड रन किया जा रहा है: @ { वर एस = "हैलो"; }

लेकिन इस फाइल में सादे HTML ब्राउज़र के लिए यह नहीं कर रहा है। मैंने अन्य (पहले काम कर रहे) आंशिक भी कोशिश की है और वे या तो दिखाई नहीं देंगे (पृष्ठ पर स्रोत देखें कि यह वहां नहीं है)।

मैं भी के लिए प्रतिस्थापन @ {Html.RenderAction (...) की कोशिश की है; } बिना सफलता के। एचटीएमएल @ एचटीएमएल.एक्शन का कोई पक्ष दिखाई दे रहा है, इसलिए मुझे पता है कि index.cshtml ठीक से प्रदर्शित हो रहा है।

और भी अजीब रूप से _Layout फ़ाइल में HTML भी है। ऑक्शन कमांड और वे ठीक दिखाई देते हैं।

मुझे सच में यकीन नहीं है कि और क्या जांचना है, या यह पुष्टि कैसे करें कि पाइपलाइन HTML प्राप्त कर रही है। क्या कोई भी मदद कर सकता है?

धन्यवाद!

+0

उचित स्थान पर स्थित है कि कार्रवाई के लिए दृश्य है? कभी नहीं, मैंने बस एक पंक्ति देखी जिसे मैं ढूंढ रहा था। – Buildstarted

उत्तर

1

मस्तिष्क एक मजेदार बात है, और कल इस पर कई घंटों खर्च करने के बावजूद, मेरे कुत्ते ने रात के मध्य में मुझे अपने अवचेतन के जवाब में ठोकर खाने के लिए जागृत कर लिया।

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

मैंने पुष्टि की है कि बाहर टिप्पणी प्रश्न में कार्रवाई पर OutputCache फिल्टर समस्या तय किया है।

मुझे पता नहीं है के रूप में यह कुछ मैं उपयोगी पाते हैं नहीं है, तो इस समस्या के पृष्ठ-स्तरीय कैशिंग का सच है।

+0

उत्सुकता और उत्सुकता। मैंने अभी एमवीसी 3 के आरसी 2 स्थापित किए हैं और आंशिक-स्तर कैशिंग फिर से काम कर रही है, और सभी html.actions फिर से दिख रहे हैं। खैर, परेशान करने के लिए खेद है! –

6

इस प्रयास करें:

@ {Html.RenderAction ("LatestBlogsMainPanelWidget", "ब्लॉग");}

+0

आप मूल प्रश्न में देख सकते हैं कि मैंने कोशिश की थी। फिर भी धन्यवाद। –

8

आंशिक दृश्य पर एक लेआउट = अशक्त रखो और यह ठीक काम करेंगे।

+0

बिल्कुल मुझे क्या चाहिए। यह [ChildActionOnly] विशेषता के साथ सजाए गए मेरी कार्रवाई के लिए उपयोगी था। – David

+8

वास्तव में, मैं सिर्फ पता चला कि बजाय कि में जोड़ने, (मेरे मामले में) की मैं सिर्फ वापसी PartialView वापस जाने के लिए देखें स्विच करने के लिए की जरूरत है। – David

1

इस समस्या के समाधान खोजने के दौरान, मुझे Html.Action और Html.RenderAction के उचित प्रतिपादन के लिए तीन उपाय समस्याएं नहीं मिली हैं। कृपया सत्यापित करें कि आपने चीजों को ठीक से किया है या नहीं।

    अपने PartialView में
  1. या आपके द्वारा निर्धारित @ देखें {लेआउट = बातिल;}
  2. के बजाय आंशिक दृश्य का उपयोग करें देखें।
  3. [ChildActionOnly] विशेषताओं के साथ अपने कार्रवाई सजाएँ।

मुझे आशा है कि आप अपने मुद्दों को हल कर सकने वाले सभी चरणों के ऊपर आवेदन कर सकते हैं।

संबंधित मुद्दे