Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World。
系列目录
1、Taurus.MVC WebAPI 入门开发教程1:框架下载环境配置与运行。
2、Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World。
3、Taurus.MVC WebAPI 入门开发教程3:路由类型和路由映射。
4、Taurus.MVC WebAPI 入门开发教程4:控制器方法及参数定义、获取及基础校验属性【Require】。
5、Taurus.MVC WebAPI 入门开发教程5:控制器安全校验属性【HttpGet、HttpPost】【Ack】【Token】【MicroService】。
6、Taurus.MVC WebAPI 入门开发教程6:全局控制器DefaultController与全局事件。
7、Taurus.MVC WebAPI 入门开发教程7:业务逻辑基类LogicBase的使用。
8、Taurus.MVC WebAPI 入门开发教程8:WebAPI文档与自动化测试。
后续还有两个系列:
1、Taurus.MVC 微服务 入门开发教程系列。 2、Taurus.MVC Web应用 入门开发教程系列。
前言:
本篇继续上一篇运行程序之后,接着介绍控制器的添加和默认路由寻址模式。
1、添加控制器:
在上一篇文章,运行的项目中:
新建HelloController类,继承自核心控制器,编写输出Hello World方法。
注意事项核心三要素:
1、类名为:XXXController,以Controller结尾。 2、类继承自:Taurus.Core.Controller(可以二次继承,构建自己的Base基类)。 3、类名和方法修饰符号为:public, 方法返回值为void,输出用Write方法输出。
2、指定控制器搜索名称:
控制器可以放在任意项目中,建议是统一新建一个控制器项目存放。
为了避免框架搜索全局的dll,可以通过配置指定控制器所有在的dll名称,方便框架高效搜索。
1、ASP.NET项目:web.config 配置:
<configuration>
<appSettings>
<!--指定控制器所在的项目(Dll)名称,多个用“,“号分隔-->
<add key="Taurus.Controllers" value="Taurus.Controllers"/>
</appSettings>
</configuration>
2、ASP.NET Core系列项目:appsettings.json 配置:
{
"AppSettings": {
//这里要改成:控制器所在的项目编绎后的dll名称(不包括后缀,允许多个,用逗号分隔)
"Taurus.Controllers": "WebApplication1" }
}
3、F5运行程序:
输入请求网址:/控制器名称/方法名称
从结果很容易看出,框架默认的路径规则是:
/控制器名称(不含Controller结尾部分)/方法名称。
说明:
需要定义其它的路由规则,详情可以见下一篇文章。
输入其它无效请求网址:
因为没有定义bigboy方法,所以系统返回404。
4、拦截404的不存在方法:重载Default方法
public class HelloController : Taurus.Core.Controller
{
public override void Default()
{
Write("Hello " + Action);//Action即方法名。
}
public void World()
{
Write("Hello World");
}
}
再输入之前的请求网址:
说明:
可以看到,所有404未定义的方法,都统一走进了重载后的Default方法,可以进行归一处理。
重点:控制器内重载的Default方法,仅对控制器内的无效地址生效,即/hello/xxxxxx,这里的xxxxxx部分生效。
如果是控制器级别的,则由全局控制器DefaultController处理,后续有文章介绍。
总结:
本篇介绍控制器的添加和请求规则,下一篇讲述更进一步的路由规则。
最新文章
- 责任链模式/chain of responsibility/行为型模式
- Microsoft Dynamics AX 7 新特性探索 - Demo 部署(Part 1)
- 可扩展的事件复用技术:epoll和kqueue
- edittext把软键盘上的回车键改为搜索、发送或者 下一步,窗口随软键盘弹出而改变。
- java中的条件语句(if、if...else、多重if、嵌套if)
- com.google.inject.CreationException: Guice creation errors
- 数据结构学习笔记05图 (邻接矩阵 邻接表-->;BFS DFS、最短路径)
- 剑指Offer46 求1+2+...+n
- 一个Solr搜索实例,增删改查+高亮+分页
- spfa + slf优化
- Static Final用法
- Notification封装(没做从网络下载)
- Linux文件io--one简述
- SQL排除重复结果只取字段最大值
- VS2010 编译 sqlite3 生成动态库和链接库
- oracle系列--基础理论
- RegExp正则表达式规则以及常用正则表达式
- Java的LockSupport.park()实现分析(转载)
- MachineLearning之Logistic回归
- 如何在win 2008 server和win 7上add web site