دلیل خطای Http Error 404 در Asp.net Core
سلام بعد از زدن دکمه Submit خطای زیر رو دریافت می کنم.
This localhost page can’t be found
No webpage was found for the web address: https://localhost:44309/Category/Create?area=AdminPanel
HTTP ERROR 404
کدهایی که در View نوشته شده رو در ادامه قرار میدم.
@model a.Models.Category
   <form asp-area="AdminPanel" asp-controller="Category" asp-action="Create" method="post">
        <div class="form-group">
            <label asp-for="Title"></label>
            <input asp-for="Title" />
        </div>
        <div class="form-group">
            <label asp-for="Description"></label>
            <input asp-for="Description" />
        </div>
        <div class="form-group">
            <input type="submit" value="ایجاد" class="btn btn-success" />
            <a asp-action="Index" class="btn btn-danger">بازگشت</a>
       </div>
  </form>
پاسخ هوش مصنوعی
خطای HTTP 404 به این معناست که آدرس URL مورد نظر شما پیدا نشد. در ASP.NET Core، دلایل متعددی می توانند باعث این خطا شوند:
1. **مسیر اشتباه**: ممکن است کنترلر یا اکشن ای که می خواهید به آن دسترسی پیدا کنید وجود نداشته باشد یا نام آن اشتباه نوشته شده باشد. حتماً نام کنترلر و اکشن را بررسی کنید.
2. **عدم تعریف مسیر**: اگر از ویژگی areas استفاده می کنید، مطمین شوید که ناحیه (Area) مورد نظر تعریف شده و مسیر مربوط به آن در Startup.cs ثبت شده است.
3. **خطای پیکربندی**: در فایل Startup.cs حتماً اطمینان حاصل کنید که متد UseEndpoints به درستی پیکربندی شده است.
مثال از نحوه افزودن ناحیه (Area) در Startup.cs:
app.UseEndpoints(endpoints =>
{
    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
    endpoints.MapAreaControllerRoute(
        name: "AdminPanel",
        areaName: "AdminPanel",
        pattern: "AdminPanel/{controller=Home}/{action=Index}/{id?}");
});4. **پیکربندی روتینگ**: اطمینان حاصل کنید که routing به درستی تنظیم شده باشد.
بررسی این نکات می تواند به شما کمک کند تا مشخص کنید که چرا خطای 404 در زمان ارسال فرم به وجود می آید.
دلیل خطای Http Error 404
خطای شما در این لینک قبلا بهش پاسخ داده شده. اما مجددا یک توضیحی براتون میدم. دستوراتی که شما در view نوشتید ظاهرا درست هست.
<form asp-area="AdminPanel" asp-controller="Category" asp-action="Create" method="post">
   ...
</form>
وقتی شما روی دکمه submit اطلاعات کلیک می کنید باید به آدرس زیر برنامه هدایت بشه.
https://localhost:44309/AdminPanel/Category/Create
اما اگر خطای Http Error 404 دریافت می کنید احتمالا خطا در جای دیگه ای هست. بنابراین موارد زیر رو به ترتیب چک کنید.
تعریف مسیر در فایل startup.cs در Asp.net Core
خب اول باید مطمئن بشید که در فایل startup.cs و در متد Configure مسیر برای AdminPanel تعریف کردید. در کدهای زیر این کار رو انجام دادیم.
app.UseMvc(routes =>
   {
       routes.MapRoute(
          name: "default",
          template: "{controller=Home}/{action=Index}/{id?}");
    });
//For Area
app.UseMvc(routes =>
   {
       routes.MapRoute(
          name: "AdminPanel",
          template: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
   });
در کدهای بالا یک Area به نام AdminPanel و یک مسیر برای این ناحیه تعریف کردیم. دقت کنید این کدها برای Core نسخه 2.2 می باشد. (مسیریابی در Core 2 و Core 3)
تعریف Attribute مربوط به Area در بالای کنترلر
در مرحله بعد وقتی مطمئن شدید که مسیر Area به درستی تعریف شده حالا باید مطمئن بشید که در بالای کنترلر از Atrribute مربوط به Area استفاده کردید.
[Area("AdminPanel")]
public class CategoryController : Controller
{
   [HttpPost]
   public IActionResult Create(Category model)
   {
       return View();
   }
}
همچنین دقت کنید که حتما در کنترلر یک اکشن با نام Create و با ویژگی HttpPost باید داشته باشید.
- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2
 
                         
                         
                        