如何在ASP.NET Core中使用区域

瓦希德·阿米里(Vahid Amiri):

如何Area在ASP.NET Core中使用?

我有一个需要管理部分的应用程序。本部分要求将其视图放置在该区域中。开头的所有请求Admin/都需要重定向到该区域。

瓦希德·阿米里(Vahid Amiri):

为了在ASP.NET Core应用程序中包含区域,首先我们需要在Startup.cs文件中包含常规路由(最好将其放置在任何非区域路由之前):

在Startup.cs / Configure方法中:

app.UseMvc(routes =>
{
    routes.MapRoute("areaRoute", "{area:exists}/{controller=Admin}/{action=Index}/{id?}");

    routes.MapRoute(
        name: "default",
        template: "{controller=Home}/{action=Index}/{id?}");
});

然后Areas在应用程序的根目录中创建一个名为Admin文件夹的文件夹,在前者中创建另一个文件夹,并在其中创建以下文件夹Admin(ViewComponent是可选的):

在此处输入图片说明

现在,我们在Controllers名为文件夹中创建一个控制器AdminController,其内容可以像这样:

[Area("Admin")]
[Route("admin")]
public class AdminController : Controller
{
    public AdminController()
    {
        // do stuff
    }

    public IActionResult Index()
    {
        return View();
    }

    [Route("[action]/{page:int?}")]
    public IActionResult Orders()
    {
        return View();
    }

    [Route("[action]")]
    public IActionResult Shop()
    {
        return View();
    }

    [Route("[action]/newest")]
    public IActionResult Payments()
    {
        return View();
    }
}

现在,为了使它起作用,您需要为所有返回一个的动作创建视图。视图的层次结构就像您在非区域视图文件夹中的结构一样:

在此处输入图片说明

现在,您应该一切顺利!

问题:如果要在我的区域内放置另一个控制器怎么办?

回答:

只需在旁边添加另一个控制器,AdminController并确保路由如下所示:

[Area("Admin")]
[Route("admin/[controller]")]
public class ProductsController : Controller
{
    public ProductsController()
    {
        //
    }

    [Route("{page:int?}")]
    public IActionResult Index()
    {
        return View();
    }
}

重要的是[Route("admin/[controller]")]有了它,您可以保持路由到的样式admin/controller/action/...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在ASP.NET Core中使用Bootstrap 4

如何在ASP.NET Core应用中使用HttpClient

如何在 ASP.Net Core 3 中使用 UseNodeModules?

如何在ASP.NET Core中使用jquery

如何在ASP.NET Core中使用SqlClient?

如何在ASP.NET Core中使用npm

如何在 Asp.Net Core 中使用 Ninject?

如何在 ASP.NET Core 中使用 API?

如何在 ASP.NET Core 中使用异步“ForEach”?

在 ASP.NET Core 中使用区域时找不到 favicon.ico

ASP.NET MVC-如何在EvoHtmlToPdf中使用自定义区域性

如何在ASP.NET Core中设置默认区域?

如何在asp.net中使用<%%>?

如何在.NET CORE中使用SqlException?

如何在.Net Core中使用ServiceExtensions?

如何在.NET Core中使用IUserIdProvider?

如何在Asp.net Core 2.0中使用log4net

如何在ASP.NET Core WebAPI中使用Newtonsoft:Json.NET?

Asp.net Core 2-如何在Asp.net Core 2.0中使用ServiceLocator

使用 IdentityDbContext 時如何在 ASP.NET Core MVC 中使用存儲庫模式?

我们如何在ASP.Net Core中使用HttpClient?

如何在asp.net.core中使用Ajax发布表单数据和文件?

如何在ASP.NET Core 3.0中使用ValidationAttribute验证多个操作参数

如何在Asp.net Core rc1中的静态方法中使用DI

如何在 ASP.NET Core 中使用 mysql 进行单元测试、actionresult

如何在后台进程中使用Asp .net core上传文件

如何在Rider中使用F#创建ASP.NET Core WebAPI项目?

如何在ASP.NET Core 2.1中使用IDesignTimeDbContextFactory实现?

如何在ASP.NET Core 5中使用FromSqlRaw删除记录?