मैं हर जगह इसके लिए उत्तर खोज रहा हूं, लेकिन मुझे कोई भी प्रतीत नहीं होता है। मेरे मूल रूप से एक एमवीसी अनुप्रयोग सेटअप है और मैं अपने मार्गों के लिए AttributeRouting
में निर्मित का उपयोग कर रहा हूं।एएसपी.नेट एमवीसी - विशेषता रूटिंग क्षेत्र दृश्य नहीं ढूंढ रहा
फ़ोल्डर संरचना इस तरह दिखती है;
- मॉडल
- दृश्य
- नियंत्रकों
- क्षेत्रों
- सदस्य
- MemberAreaRegistration.cs
- नियंत्रकों
- HomeController.cs
- दृश्य
- होम
- Account.cshtml
- होम
- सदस्य
और global.asax
में मेरे मार्गों फिर मैं ऊपर तार इस तरह;
public class Application : System.Web.HttpApplication {
protected void Application_Start(){
AreaRegistration.RegisterAllAreas();
// other web optimization stuff
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
}
तो फिर, MemberAreaRegistration.cs
सरल है।
namespace App.Web.Areas.Member {
public class MemberAreaRegistration: AreaRegistration {
public override string AreaName { get { return "Member"; } }
}
public override void RegisterArea(AreaRegistrationContext context){ }
}
और मैं विशेषताओं का उपयोग यह तार करने की कोशिश ...
/areas/member/controllers/homecontroller.cs
// ...
[Route("member/account")]
public ActionResult Account() { return View(); }
// ...
समस्या यह है कि इस मार्ग पाता है, लेकिन यह दृश्य नहीं मिल रहा। मुझे निम्नलिखित त्रुटि मिलती है;
देखें 'खाता' या उसका मास्टर नहीं मिला या कोई दृश्य इंजन खोजे गए स्थानों का समर्थन करता है। निम्न स्थानों खोजा गया:
~/दृश्य/होम/Account.aspx
~/दृश्य/होम/Account.ascx
~/दृश्य/साझा/Account.aspx
~/दृश्य/साझा/Account.ascx
~/दृश्य/होम/Account.cshtml
~/दृश्य/होम/Account.vbhtml
~/विचार/साझा/खाता।cshtml
~/दृश्य/साझा/Account.vbhtml
सभी खातों से, यह ठीक काम करना चाहिए - और यदि नहीं, तो मैं उम्मीद ~/area
कम से कम पथ यह खोज करने के लिए कोशिश कर रहा है में किया जाना है। क्या मुझे इस समारोह को बनाने के लिए कुछ अतिरिक्त तार करना है?
मैं ASP.NET MVC का उपयोग कर रहा मैं देखने के निरपेक्ष पथ को हार्डकोड 5,0
है, यह काम करता है। जाहिर है यह हालांकि एक अच्छी स्थिति नहीं है। मैं इसे सम्मेलन से बाहर देखने के लिए पसंद करूंगा। लेकिन अगर मैं return View("~/areas/member/views/home/account.cshtml");
टाइप करता हूं तो मुझे दृश्य वापस मिल जाता है - इसलिए मुझे पता है कि यह फ़ाइल तक पहुंच सकता है और यह सही है।
यहाँ मेरी RouteConfig.cs
अनुरोध के अनुसार
RouteConfig.cs है
public class RouteConfig {
public static void RegisterRoutes(RouteCollection routes) {
// mvc attribute routing allows us to supersede normal routing mechanisms and
// declare our routes a bit more verbosely
routes.MapMvcAttributeRoutes();
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "App.Web.Controllers" }
);
}
}
हाँ! ऐसा लगता है कि इसे हल किया गया है! – Ciel