Asp.net Core 创建 Areas[区域]

在Asp.net Core VS2015中,我们发现还有很多不太简便的地方,比如右击添加视图,转到试图页等功能图不见了,虽然我们可以通过工具栏的自定义命令,把这两个右击菜单添加上,但是貌似是灰色的不能用。

其实,这样也好,通过手动创建,更让我们深刻的理解MVC以及路由之间的关系,很多人认为底层的东西是高大上的,比如一提到汇编,很多人感觉牛的不行不行的,其实术业有专攻,做程序的感觉搞核电的很牛,搞核电的同样也感觉做程序的很牛,但是通过手动的创建MVC以及路由,除了让我们深刻的理解MVC之外,也在一定程度上满足了有这种想法的朋友。

添加配置区域

我们在之前的版本中中添加区域,通常是直接右击 → 添加区域,在创建的区域目录中,自带区域的路由配置。如下:

这其实是十分方便的,但是在VS2015 中,添加选项里没有了区域这个选项,我们只能通过手动的方式来创建区域:
① 添加区域文件夹 Areas 并在区域文件下 添加文件夹 SysManage

② 在SysManage下新建两个文件夹 Controllers(控制器) 和 Views(视图)

③ 添加一个控制器 AccountController

注意:AreaAttribute 名称要和文件夹名称一致

④ 我们在 Views 文件夹下,新建一个文件夹 Account (与控制器名称一致),然后添加视图 Index.cshtml

⑤ 在Startup.cs 下,添加区域路由配置 routes.MapRoute("areaRoute", "{area:exists}/{controller}/{action=Index}/{id?}");

这样,我们区域就添加完了,我们来测试一下:

添加TagHelper

修改在之前的版本中,对于 _ViewStart.cshtml 大家都很熟悉,就是一个在呈现View文件的时候的启动文件,会在所有View(.cshtml)被执行之前执行,比如设置Layout = "~/Views/Shared/_Layout.cshtml";这样的语句,只需在_Viewstart.cshtml写一遍就可以了。
在这个版本中,新增了一个_ViewImports.cshtml文件,这个文件的主要作用就是提供命名空间可用于所有其他视图。在以前的MVC项目,这个功能是通过在视图文件夹中的web.config文件提供;由于Web.config不再存在,全局命名空间是由_ViewImports.cshtml提供。

我们先不管这个文件,我们来添加一个TagHelper 标签:

我们发现,TagHelper 貌似不行,我们可以通过浏览器测试一下,其实在VS2015中,如果可以,这里应该是加粗的,我们看下系统自带的样例中TagHelper:

这是为什么呢?是因为我们没有添加 TagHelper的引用。我们添加一下引用 @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

我们再看下我们刚才创建的两个TagHelper标签:

我们发现TagHelper已经起作用了,我们刚才讲过 _ViewImports.cshtml 是一个提供全局命名空间的文件,那么我们没有必要每个视图文件都添加一条这个引用吧,我们添加一个全局的引用,让每个试图页都引用TagHelper就好了

我们在 Areas 的 Views 文件夹下添加一个  _ViewImports.cshtml  :

并且添加TagHelper引用:

我们删掉Account\Index.cshtml 的 TagHelper 引用,我们看下:

同样的,我们也可以在 _ViewImports.cshtml 添加一些模型的命名空间的引用:


在Asp.net Core VS2015中,我们发现还有很多不太简便的地方,比如右击添加视图,转到试图页等功能图不见了,虽然我们可以通过工具栏的自定义命令,把这两个右击菜单添加上,但是貌似是灰色的不能用。

其实,这样也好,通过手动创建,更让我们深刻的理解MVC以及路由之间的关系,很多人认为底层的东西是高大上的,比如一提到汇编,很多人感觉牛的不行不行的,其实术业有专攻,做程序的感觉搞核电的很牛,搞核电的同样也感觉做程序的很牛,但是通过手动的创建MVC以及路由,除了让我们深刻的理解MVC之外,也在一定程度上满足了有这种想法的朋友。

添加配置区域

我们在之前的版本中中添加区域,通常是直接右击 → 添加区域,在创建的区域目录中,自带区域的路由配置。如下:

这其实是十分方便的,但是在VS2015 中,添加选项里没有了区域这个选项,我们只能通过手动的方式来创建区域:
① 添加区域文件夹 Areas 并在区域文件下 添加文件夹 SysManage

② 在SysManage下新建两个文件夹 Controllers(控制器) 和 Views(视图)

③ 添加一个控制器 AccountController

注意:AreaAttribute 名称要和文件夹名称一致

④ 我们在 Views 文件夹下,新建一个文件夹 Account (与控制器名称一致),然后添加视图 Index.cshtml

⑤ 在Startup.cs 下,添加区域路由配置 routes.MapRoute("areaRoute", "{area:exists}/{controller}/{action=Index}/{id?}");

这样,我们区域就添加完了,我们来测试一下:

添加TagHelper

修改在之前的版本中,对于 _ViewStart.cshtml 大家都很熟悉,就是一个在呈现View文件的时候的启动文件,会在所有View(.cshtml)被执行之前执行,比如设置Layout = "~/Views/Shared/_Layout.cshtml";这样的语句,只需在_Viewstart.cshtml写一遍就可以了。
在这个版本中,新增了一个_ViewImports.cshtml文件,这个文件的主要作用就是提供命名空间可用于所有其他视图。在以前的MVC项目,这个功能是通过在视图文件夹中的web.config文件提供;由于Web.config不再存在,全局命名空间是由_ViewImports.cshtml提供。

我们先不管这个文件,我们来添加一个TagHelper 标签:

我们发现,TagHelper 貌似不行,我们可以通过浏览器测试一下,其实在VS2015中,如果可以,这里应该是加粗的,我们看下系统自带的样例中TagHelper:

这是为什么呢?是因为我们没有添加 TagHelper的引用。我们添加一下引用 @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

我们再看下我们刚才创建的两个TagHelper标签:

我们发现TagHelper已经起作用了,我们刚才讲过 _ViewImports.cshtml 是一个提供全局命名空间的文件,那么我们没有必要每个视图文件都添加一条这个引用吧,我们添加一个全局的引用,让每个试图页都引用TagHelper就好了

我们在 Areas 的 Views 文件夹下添加一个  _ViewImports.cshtml  :

并且添加TagHelper引用:

我们删掉Account\Index.cshtml 的 TagHelper 引用,我们看下:

同样的,我们也可以在 _ViewImports.cshtml 添加一些模型的命名空间的引用:


时间: 2024-07-30 10:58:36

Asp.net Core 创建 Areas[区域]的相关文章

在Asp.Net Core中添加区域的简单实现

使用区域,可以有效的对业务进行隔离,各种业务及分工可以更灵活.在Asp.Net Core中启用区域也是极简单的. 使用步骤: 1.在 Startup.cs 中添加区域的路由: app.UseMvc(routes => { routes.MapRoute( name: "area", template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"); routes.MapRoute( name:

[译]ASP.NET Core 2.0 区域

问题 如何将一个规模庞大的ASP.NET Core 2.0应用程序进行逻辑分组? 答案 新建一个ASP.NET Core 2.0空项目,修改Startup类,增加Mvc服务和中间件: public void ConfigureServices(IServiceCollection services) { services.AddMvc(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if

基于ASP.NET Core 创建 Web API

使用 Visual Studio 创建项目. 文件->新建->项目,选择创建 ASP.NET Core Web 应用程序. 基于 ASP.NET Core 2.0 ,选择API,身份验证选择:不进行身份验证. 至此,就完成了一个ASP.NET Core项目的创建,项目中已经默认创建了一个ValuesController,F5运行项目,可以在浏览器调用已经存在的API. 参考资料: ASP.NET Core 中文文档 第二章 指南(2)用 Visual Studio 和 ASP.NET Core

asp.net MVC把Areas区域绑定成二级域名

先分析需求 在MVC项目中,我们如果有两个Areas.比如Test和DEMO.我们的访问地址应该是 http://localhost:8098/test http://localhost:8098/demo 如果我们绑定域名后想实现这样访问 http://test.abc.com:8098/ http://demo.abc.com:8098/ 这个问题的相关解决办法倒是不少,比如http://www.cnblogs.com/jobily/archive/2011/10/09/2204800.ht

ASP.NET Core 实战:构建带有版本控制的 API 接口

 一.前言 在上一篇的文章中,主要是搭建了我们的开发环境,同时创建了我们的项目模板框架.在整个前后端分离的项目中,后端的 API 接口至关重要,它是前端与后端之间进行沟通的媒介,如何构建一个 “好用” 的 API 接口,是需要我们后端人员好好思考的. 在系统迭代的整个过程中,不可避免的会添加新的资源,或是修改现有的资源,后端接口作为暴露给外界的服务,变动的越小,对服务的使用方造成的印象就越小,因此,如何对我们的 API 接口进行合适的版本控制,我们势必需要首先考虑. 系列目录地址:ASP.NET

ASP.NET Core 中的脚本标记帮助程序

官网地址:https://docs.microsoft.com/zh-cn/aspnet/core/mvc/views/tag-helpers/built-in/script-tag-helper?view=aspnetcore-3.0 标记帮助程序用于生成指向主要或回退脚本文件的链接. 通常主脚本文件位于内容分发网络 (CDN). CDN: 提供多个性能优势,并使用 Web 应用托管资产. 不应依赖作为资产的唯一来源. CDN 并非始终可用,因此应使用可靠的回退. 通常,回退是托管 Web 应

ASP.NET Core AD 域登录

在选择AD登录时,其实可以直接选择 Windows 授权,不过因为有些网站需要的是LDAP获取信息进行授权,而非直接依赖Web Server自带的Windows 授权功能. 当然如果使用的是Azure AD/企业账号登录时,直接在ASP.NET Core创建项目时选择就好了. 来个ABC: 1.新建一个ASP.NET Core项目 2.Nuget引用dependencies / 修改```project.json``` Novell.Directory.Ldap.NETStandard Micr

Asp.Net Core 初探 (三)

昨天失败的生产环境部署就先放着,明天再解决! 今天利用中午的空余时间看了一下Asp.net core 的Areas . 相对于Asp.net MVC5 以及之前的版本,asp.net core 的Areas实现起来就要简单的多了,在我们新建的Controller上加上[Areas("XXX")]就可了. 需要注意的是目录结构需要我们自己手动建立,即在解决方案上右键添加文件夹,然后一层一层建立. 最后一点就是路由注册:

【翻译】asp.net core中使用MediatR

这篇文章来自:https://ardalis.com/using-mediatr-in-aspnet-core-apps 本文作为翻译,有一些单词翻译成中文可能会有一些误解(对于读者)或者错误(对于作者)的地方,所以在文章中你可以看到一些单词没有进行翻译.如果有不对的地方,请指出,谢谢. 在Asp.net core中使用MediatR 我已经开始考虑使用MediatR作为我的领域事件实现.为了达到这个目的,我用asp.net core创建了一个示例程序,总的来说是非常容易的,如果你之前没有使用过