2014-09-25 8 views
6

में आईकंट्रोलर को नहीं मिला या लागू नहीं किया गया था। मैं Here से साइटकोर में नियंत्रक प्रतिपादन सीख रहा हूं।पथ '/' के लिए नियंत्रक साइटकोर

मैंने एक सरल नियंत्रक (हैलोवर्ल्ड) और संबंधित दृश्य (index.schtml) बनाया है। साइटकोर एक्सप्लोरर के प्रतिपादन अनुभाग में इसे (पेज पेजकंटेंट के साथ) मैप किया गया है ... और साइटकोर एक्सप्लोरर के सामग्री अनुभाग में होम आइटम में रेंडरिंग आइटम जोड़ें .. लेकिन जब मैं इसे ब्राउज़ करता हूं, तो यह त्रुटि देता है।

The controller for path '/' was not found or does not implement IController. 

सभी पोस्ट मैंने पढ़ लिया है Asp नेट MVC ..लेकिन मैं Sitecore MVC

Sample.html (Sitecore एक्सप्लोरर प्रतिपादन धारा में पृष्ठ सामग्री) को

@using Sitecore.Mvc 

<html> 
<body> 
    @Html.Sitecore().Placeholder("content") 

    <p>Today's date is @DateTime.Now.ToShortDateString()</p> 
</body> 

</html> 
संबंधित मुद्दे है से जुड़े हुए हैं

केवल इस लाइन समस्या दे रहा है

@Html.Sitecore().Placeholder("content") 

अगर मैं इस लाइन को दूर ... यह ठीक काम करता है एक ब्राउज़र शो की तारीख और समय

Index.html

<p>Hello from Controller -todays Date is @DateTime.Now.ToString()</p> 

नियंत्रक पर घ पेज

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 

namespace MVC.Controllers 
{ 
    public class HelloWorldController : Controller 
    { 
     // 
     // GET: /HellowWorld/ 

     public ActionResult Index() 
     { 
      return View(); 
     } 

    } 
} 

उत्तर

8

यह हो सकता है यदि आप डिफ़ॉल्ट MVC मार्गों को शामिल किया है, के रूप में वे Sitecore के स्वयं के नियंत्रक कार्यान्वयन ओवरराइड।

सुनिश्चित करें कि आपने RouteConfig.cs/Global.cs (एमवीसी संस्करण के आधार पर) से निम्न पंक्तियां हटा दी हैं;

routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

routes.MapRoute(
    name: "Default", 
    url: "{controller}/{action}/{id}", 
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
); 
3

कृपया System.Web.Mvc.dll अपनी परियोजना द्वारा संदर्भित के संस्करण की जाँच करें। यह साइटकोर वेबसाइट \ Bin फ़ोल्डर में एक ही डीएलएल के बाद हो सकता है। कृपया सुनिश्चित करें कि आपकी परियोजना System.Web.Mvc.dll के समान संस्करण को वेबसाइट \ Bin फ़ोल्डर में से एक के रूप में संदर्भित करती है।

एफवाईआई। नियंत्रक रेंडरिंग में नियंत्रक फ़ंक्शन निर्दिष्ट करने के दो तरीके हैं:

  • केवल नियंत्रक नाम से। (कृपया इस मामले में में "नियंत्रक" प्रत्यय को छोड़ दें)
  • पूरी तरह से योग्य नाम से। उदाहरण के लिए "प्रोजेक्ट। कंट्रोलर। हैलोवर्ल्ड कंट्रोलर, प्रोजेक्ट"। इस मामले में "नियंत्रक" प्रत्यय को न छोड़ें।
+0

यहाँ क्या हुआ माइक्रोसॉफ्ट से कुछ सुरक्षा अद्यतन 3.0.0.1 करने के लिए MVC 3 के संस्करण बढ़ा था । वेबसाइट 3.0.0.1 तक सीमित थी, लेकिन संकलित पुस्तकालयों का उपयोग मैं अभी भी 3.0.0.0 तक था और वे मेरे नियंत्रकों को समझने में असमर्थ थे। – Juliano

+0

"केवल नियंत्रक नाम से।" - मुझे हर बार मिलता है! –

+0

@gerzson damn, डाउनवोट पूरी तरह से अनौपचारिक था, कुछ टैब शफल होने के बाद गलती से क्लिक किया गया, क्षमा करें ... – Wasp

1

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

लेआउट -> नियंत्रक -> [नियंत्रक मद संदर्भ प्रकार]

मैं प्रत्येक नियंत्रक के लिए प्रत्येक नियंत्रक आइटम बनाया और कहा कि नियंत्रक Renderings के तहत सामग्री पेड़ में आइटम प्रतिपादन और वास्तविक नियंत्रक के बीच की खाई को पाटने के लिए लग रहे हैं कोड में। इस नियंत्रक आइटम की सामग्री नामस्थान और डीएल प्रदान करती है जहां नियंत्रक का कोड संग्रहीत किया जाता है और जिस क्रिया को नियंत्रक क्रिया इंगित करती है।

मुझे उम्मीद है कि इससे मदद मिलती है। इन वस्तुओं का उपयोग करने के बाद, त्रुटि चली गई है। मैं अपने उदाहरण में रास्ते में Sitecore 8.0 का उपयोग कर रहा हूँ।

0

कार्लोस 'जवाब के अलावा, मैं भी सीएमएस में अपने मॉडल को जोड़ने के लिए, मॉडल के तहत किया था:

enter image description here

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