أنا أعمل في مشروع هو مشروع Asp.net الأساسي لواجهة برمجة تطبيقات الويب. معظم مشاريعي قمت بها بواسطة Asp.net MVC و Core MVC ، لكنني سأقوم بمشروع جديد يعتمد على Core Web API. في Core MVC ، لدينا مفهوم المناطق حيث يمكننا إنشاء مناطق للجزء المسؤول ، وما إلى ذلك .... ولكن أريد أن أعرف هل يمكننا استخدام المناطق في مشاريع Asp.net الأساسية لواجهة برمجة تطبيقات الويب؟ إذا كانت الإجابة بنعم ، فكيف أفعل ذلك؟ إذا كنت تفكر في أن هناك طريقة أفضل أخبرني ، من فضلك.
يمكنك وضع وحدات تحكم API الخاصة بك في منطقة ، فقط لتجميعها. لكنك تقدم المسار بشكل أساسي على وحدة التحكم ، حتى تتمكن من إنشاء طرق مختلفة بنفسك:
[Route("api/myarea/v1/[controller]")]
لدي نفس المشكلة التي جربتها عن طريق وضع ApiController الخاص بي تحت منطقتي بحيث يبدو الهيكل كما يلي
هنا وحدة تحكم Api بالداخل
المناطق / GL / وحدات التحكم
[Area("GL")]
[Route("api/[controller]")]
[ApiController]
[HttpGet]
public IActionResult Get()
{
return Ok("api controller");
}
ولكن عندما أصل إلى عنوان URL الخاص بي
http: // localhost : 48357 / GL / Api / Get
أو
http: // localhost : 48357 / Api / GL / Get
أو
http: // localhost : 48357 / Api / Get
انا حصلت
كود الحالة: 404 ؛ لم يتم العثور على
هنا هو الكود في
Startup.cs
routes.MapAreaRoute(
name: "AreaGL",
areaName: "GL",
template: "GL/{controller=Home}/{action=Index}/{id?}"
);
الرجاء مساعدتي في هذه المسألة ، ما الخطأ الذي أفعله هنا؟
شكرًا على تواصلك معنا ،farhadibehnam.
لكي تكون وحدات التحكم في المناطق ، يجب عليك تطبيق قيد المسار {area:exists}
في مسار السمة ، كما هو موضح https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/areas؟ عرض = aspnetcore-2.2.
التعليق الأكثر فائدة
يمكنك وضع وحدات تحكم API الخاصة بك في منطقة ، فقط لتجميعها. لكنك تقدم المسار بشكل أساسي على وحدة التحكم ، حتى تتمكن من إنشاء طرق مختلفة بنفسك:
[Route("api/myarea/v1/[controller]")]