دسته بندی ها
22:49 1401/01/25

نحوه آدرس دهی (Routing) Area در کلاس StartUp در Asp net core

مشخصات سوال کننده :
کاربر : MahdiSharifiAspNetCore     امتیاز کاربر : 3     رتبه کاربر : 136
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 3708
1 نظر
pedram_khan : لطفا کدی رو که در کلاس startup و در تگ a نوشتید هم قرار بدید.

امتیاز کاربر : 277   رتبه کاربر : 6   تاریخ ثبت : 01:55 1401/01/26
هوش مصنوعی

پاسخ هوش مصنوعی

برای حل مشکل شما و اینکه آدرس دهی به صورت مناسب انجام شود، مطمین شوید که ترتیب و الگوی مسیرها در کلاس Startup.cs به درستی تنظیم شده است. شما باید الگوی مختص به Area ها را به صورت مناسب در بالای سایر الگوها قرار دهید. به این صورت:

app.UseEndpoints(endpoints =>
{
    //------------------------ Pattern For Admin Pages
    endpoints.MapControllerRoute(
        name: "areas",
        pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");

    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");

    // سایر الگوها در اینجا
});

با تنظیمات بالا، اپلیکیشن شما باید URL صحیح را تولید کند و به صورت زیر عمل کند:

https://localhost:369/Admin/Users/Remove

همچنین از Tag Helper خود به درستی استفاده کرده اید، بنابراین مطمین شوید که asp-area را به درستی تعیین کرده اید.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : pedram_khan 14:40 1401/01/26

ببینید بنظرم شما کلا مفهوم Area رو اشتباه متوجه شده باشید. در کدهایی که نوشتید شما برای هر View یک Route ایجاد کردید !!!

مثلا برای ویوی About Us یا Contact Us یا Our-Support هر کدوم رو یک مسیر تعریف کردید چرا ؟؟؟ خب همون مسیر default که ابتدای کار تعریف کردید برای همه اینا کافی هست.

نکته بعدی اینکه شما در سوالتون (قبل از ویرایش سوال) گفتید چنین Url رو میخواید فراخوانی کنید.

https://localhost:369/Admin/Users/Remove

 

ولی در کدهای Html اصلا هیچ دکمه یا Button که برای Remove باشه دیده نمیشه. بنظرم باید در مورد Routing در Core بیشتر مطالعه کنید چون در مفهوم کار اشکال دارید.

مسیریابی در Core

تفاوت مسیریابی در نسخه های Core

 

در مورد Url هم سوالتون کمی ناقص هست و اون چیزی که می خواید در کدهای Html نیست کلا که بشه اشکالتون رو متوجه شد.

به این پاسخ امتیاز بدهید    0
امتیاز: 277 رتبه: 6
1 نظر
MahdiSharifiAspNetCore : من به خاطر سئو برای اینکه آدرس ها رو کوتاه در کنم اومدم براش یک پترن تعریف کردم که هم کاربر پسند تر بشه و هم کوتاه تر - و در آخر برای اینکه اکشن مورد نظرم رو فراخوانی کنم از تگ فرم کمک گرفتم که درون یک Modal هست و توی دایو Modal Footer هم دو تا Button هست ، یکی برای بستن مدال و دیگری هم برای Submit کردن form - از اونجایی که هر تگ فرم یک پارامتر اکشن داره - مسیرش رو می فرستم به پنل ادمین کنترلر کاربران و اکشن مورد نظر ولی به جایی این قضیه میره کنترلر کاربران و اکشن من پنل مدیریت رو به عنوان پارامتر ارسال می کنه نه به عنوان یک مسیر

امتیاز کاربر : 3   رتبه کاربر : 136   تاریخ ثبت : 04:06 1401/01/26
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود