मैं ASP.NET Core in Action किताब पढ़ रहा हूं लेकिन मुझे स्पष्टीकरण के आधार पर एक अजीब व्यवहार मिला। पुस्तक में लेखक ने कहा:

Start विधि को कॉल करने के लिए आपको api/car/start का पालन करना होगा

[Route("api")]
public class BaseController : Controller { }

[Route("car")]
public class CarController : BaseController
{
   [Route("start")]
   [Route("ignition")]
   [Route("/start-car")]
   public IActionResult Start()
   {
   /* method implementation*/
   }
}

लेकिन स्पष्टीकरण सही नहीं है, परीक्षण के नमूने में, यह car/start URL के माध्यम से काम करता है न कि api/car/start!

यहां छवि विवरण दर्ज करें क्या कोई समझा सकता है कि api ने लेखक की बात के ठीक विपरीत उपेक्षा क्यों की?

2
HamedFathi 14 सितंबर 2020, 07:36

1 उत्तर

सबसे बढ़िया उत्तर

क्योंकि यह उस तरह से काम नहीं करता है। जब आप इनहेरिट करते हैं, तो रूट एट्रिब्यूट बेस क्लास रूट एट्रिब्यूट को ओवरराइड कर देगा।

लेखक का मानना ​​है कि इनहेरिटेंस में रूट एट्रीब्यूट एक क्लास और मेथड की तरह ही काम करता है।

स्रोत: https://docs। microsoft.com/en-us/aspnet/core/mvc/controllers/routing?view=aspnetcore-3.1

1
Umang 14 सितंबर 2020, 08:32