دسته بندی ها
16:31 1398/08/19

تعریف مسیر (Route) برای Area در Asp.net core 3

مشخصات سوال کننده :
کاربر : pedram_khan     امتیاز کاربر : 277     رتبه کاربر : 6
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 4108
هوش مصنوعی

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

در ASP.NET Core 3، متد `UseMvc` تغییر کرده و به جای آن بهتر است از متد `UseEndpoints` استفاده کنید. در زیر یک مثال از نحوه تعریف مسیرها برای Areas در ASP.NET Core 3 آورده شده است:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
        app.UseHsts();
    }

    app.UseHttpsRedirection();
    app.UseStaticFiles();

    app.UseRouting();

    app.UseAuthorization();

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

        // For Area
        endpoints.MapControllerRoute(
            name: "AdminArea",
            pattern: "{area:exists}/{controller=UserHome}/{action=Index}/{id?}");
    });
}

در این مثال، پس از فراخوانی `app.UseRouting()`، شما می توانید با استفاده از `app.UseEndpoints` مسیرهای خود را تعریف کنید. این تغییرات به شما اجازه می دهد تا به طور مناسب با ساختار جدید ASP.NET Core 3 کار کنید.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : fateme 16:34 1398/08/19

در Asp.net core 3 سیستم مسیردهی یا Routing قدری تغییرا داشته و اختصاصی تر شده. شما برای تعریف مسیر و همچنین برای ایجاد مسیر مورد نظر خودتون برای Area باید به شکل زیر عمل کنید

 

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

            //For Area
            app.UseEndpoints(routes =>
            {
                routes.MapAreaControllerRoute(
                  name: "AdminPanel",
                  areaName: "AdminArea",
                  pattern: "{area:exists}/{controller=AdminHome}/{action=Index}/{id?}");
            });

 

همونطور که مشاهده می کنید برای تعریف مسیرهای عادی از MapControllerRoute و برای تعریف مسیر Area از MapAreaControllerRoute استفاده میشه. همچنین متد MapAreaControllerRoute دارای 3 متغیر به نام name و areaName و pattern هست که باید مقداردهی بشه.

موفق باشید

به این پاسخ امتیاز بدهید    0
امتیاز: 1635 رتبه: 2
پاسخ دهنده : hamdola 01:48 1398/08/20

برای تعریف یک  Route جدید از نوع Area در Asp.net core 3 میتونید به صورت زیر هم انجام بدید این کار رو 

 

  app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
        endpoints.MapAreaControllerRoute(
            "admin",
            "admin",
            "Admin/{controller=Home}/{action=Index}/{id?}");
        endpoints.MapControllerRoute(
            "default", "{controller=Home}/{action=Index}/{id?}");
    });

 

منبع

به این پاسخ امتیاز بدهید    0
امتیاز: 121 رتبه: 12
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود