Taurus.MVC WebAPI 入门开发教程4:控制器方法及参数定义、获取及基础校验属性【Require】。
系列目录
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应用 入门开发教程系列。
前言:
这几天回了一趟老家,系列文章停了几天,今天继续:本篇介绍Taurus.MVC WebAPI :控制器方法及参数定义、获取及属性校验。
1、方法的定义
框架在收集方法时,仅收集第一个修饰符为public的方法作为对外的接口。
标准的方法定义:不带参数:
public class HelloController : Taurus.Core.Controller
{
public void World()
{
Write("B.Hello World");
}
}
标准的方法定义:带参数:
public class HelloController : Taurus.Core.Controller
{
public void World(string msg,System.Web.HttpPostedFile file)
{
Write("B.Hello World");
}
}
说明:带参数有两个好处:
1、系统默认帮你进行类型转换,节省代码又安全。 2、方便生成可测试WebAPI文档(自带的,后续会讲述到)
2、方法参数的获取
示例网址:/hello/world/1/2/3
public void World()
{
Write("B.Hello World"+Para);//Para即拿到值1,其它值通过Query<Type>(index)来获取。
//拿值2:Query<int>(1)
//拿值3:Query<int>(2)
}
示例网址:/hello/world?id=1&mid=2 (Post请求的参数获取方式也一样)
public void World(int id,string mid)
{
Write("B.Hello World"+id);//可以通过定义参数名称【映射】拿到,也可以Query<Type>(key)来获取。
//拿值id:Query<int>("id")
//拿值mid:Query<string>("mid")
}
3、方法参数的基础校验属性:[Require]
有一些基础的属性验证,比如,不能为空,格式错误,类型错误等。
以前每次都要在业务代码写判断,现在直接用属性就可以提前处理掉,简化业务代码。
示例代码:
public class HelloController : Taurus.Core.Controller
{ [Require("id")]
[Require("userName", "用户名")]
[Require("mobile", regex = RegexConst.Mobile)]
public void World(int id, string userName, string mobile)
{
Write("Demo.Hello World" + id);
}
}
运行请求:
1、不能为空:
2、不能为空(中文提示):
3、数据类型转换失败:
4、正则验证(手机号):
其它说明:
1、Require属性提供了不同的重载。 2、RegexConst 提供了常用的正则表达式。
其它:控制器常见的方法或属性:
public interface IController
{
/// <summary>
/// 缓存Write方法输出的结果,用于最后输出
/// </summary>
string APIResult { get; }
/// <summary>
/// 获取参数:page
/// </summary>
int PageIndex { get; }
/// <summary>
/// 获取参数:rows
/// </summary>
int PageSize { get; }
/// <summary>
/// 获取参数方法
/// </summary>
T Query<T>(Enum key);
T Query<T>(string key);
T Query<T>(string key, T defaultValue);
T Query<T>(int paraIndex);
T Query<T>(int paraIndex, T defaultValue);
void SetQuery(string name, string value);
/// <summary>
/// 从Post过来的数据中获得实体类型的转换
/// </summary>
T GetEntity<T>() where T : class;
/// <summary>
/// MVC 的视图引擎
/// </summary>
XHtmlAction View { get; set; }
HttpContext Context { get; }
HttpRequest Request { get; }
HttpResponse Response { get; }
bool IsHttpGet { get; }
bool IsHttpPost { get; }
bool IsHttpHead { get; }
bool IsHttpPut { get; }
bool IsHttpDelete { get; }
Type ControllerType { get; }
/// <summary>
/// 路由:模块参数
/// </summary>
string Module { get; }
/// <summary>
/// 路由:控制器参数
/// </summary>
string ControllerName { get; }
/// <summary>
/// 路由:方法参数
/// </summary>
string Action { get; }
/// <summary>
/// 路由:第一个参数
/// </summary>
string Para { get; }
/// <summary>
/// 输出结果
/// </summary>
void Write(string msg);
void Write(string msg, bool isSuccess);
void Write(object obj);
void Write(object obj, bool isSuccess);
/// <summary>
/// 获取Post请求,非标准请求头时,从数据流读取请求数据。
/// </summary>
/// <returns></returns>
string GetJson();
}
总结:
本篇介绍Taurus.MVC WebAPI :控制器方法及参数定义、获取及属性校验,下一篇介绍控制器的安全校验属性...。
Taurus.MVC WebAPI 入门开发教程4:控制器方法及参数定义、获取及基础校验属性【Require】。的更多相关文章
- Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World。
系列目录 1.Taurus.MVC WebAPI 入门开发教程1:框架下载环境配置与运行. 2.Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World. 3.Tau ...
- Taurus.MVC WebAPI 入门开发教程5:控制器安全校验属性【HttpGet、HttpPost】【Ack】【Token】【MicroService】。
系列目录 1.Taurus.MVC WebAPI 入门开发教程1:框架下载环境配置与运行. 2.Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World. 3.Tau ...
- Taurus.MVC WebAPI 入门开发教程6:全局控制器DefaultController与全局事件。
系列目录 1.Taurus.MVC WebAPI 入门开发教程1:框架下载环境配置与运行. 2.Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World. 3.Tau ...
- Taurus.MVC WebAPI 入门开发教程1:框架下载环境配置与运行(含系列目录)。
前言: Taurus.MVC 微服务版本已经发布了:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单. 以前都是框架发布时写点相关功能点的文章,没有形成 ...
- Taurus.MVC WebAPI 入门开发教程3:路由类型和路由映射。
系列目录 1.Taurus.MVC WebAPI 入门开发教程1:框架下载环境配置与运行. 2.Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World. 3.Tau ...
- Taurus.MVC WebAPI 入门开发教程8:WebAPI文档与自动化测试。
系列目录 1.Taurus.MVC WebAPI 入门开发教程1:框架下载环境配置与运行. 2.Taurus.MVC WebAPI 入门开发教程2:添加控制器输出Hello World. 3.Tau ...
- Taurus.MVC 微服务框架 入门开发教程:项目集成:4、默认安全认证与自定义安全认证。
系列目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 本系列第一篇:Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单 ...
- Taurus.MVC 微服务框架 入门开发教程:项目集成:6、微服务间的调用方式:Rpc.StartTaskAsync。
系统目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...
- Taurus.MVC 微服务框架 入门开发教程:项目部署:7、微服务节点的监控与告警。
系统目录: 本系列分为项目集成.项目部署.架构演进三个方向,后续会根据情况调整文章目录. 开源地址:https://github.com/cyq1162/Taurus.MVC 本系列第一篇:Tauru ...
随机推荐
- 个人冲刺(五)——体温上报app(一阶段)
任务:完成了体温录入.体温记录删除.体温修改以及历史记录查询操作 体温录入 public void insertDB(View view) { MyDBHelper mydbh=new MyDBHel ...
- P4169 [Violet]天使玩偶
两种操作:1.加入点(x,y); 2.查询距(x,y)最近的点的曼哈顿距离距离 思路:绝对值拆开通常可以取max,不过这里直接分类讨论4种情况,我们发现如果找\(i\)点左下点\(j\)\((x_j& ...
- ES6 - promise(2)
从上一篇中我们知道promise的概念,上一篇也提到了 promise的过程: 启动异步任务 => 返回promise对象 =>给promise对象绑定回调函数(甚至可以在异步任务结束后指 ...
- Fiddler对安卓高版本进行抓包解决方案以及分析 进阶二
今天是2021年的最后一天了,多分享一些干货吧!看过上一章节教程后会有同学疑惑,我也一步一个脚印的,跟着流程走也设置了代理以及安装了证书,有的同学会发现 为什么手机不能够连接网络了呢?细心一点的同学会 ...
- CabloyJS 4.12震撼发布,及新版教程尝鲜
引言 凡是可以用 JavaScript 来写的应用,最终都会用 JavaScript 来写 | Atwood 定律 目前市面上出现的大多数与 NodeJS 相关的框架,基本都将 NodeJS 定位在工 ...
- SAP 复制Client
原文链接:https://fenginfo.com/102.html 枫竹丹青 SCCL 复制客户端 进入了客户端复制主界面,首先选择参数文件(Selected Profile),虽然此条目为灰色的但 ...
- 手写网站服务器~用Python手动实现一个简单的服务器,不借助任何框架在浏览器中输出任意内容
写在前面的一些P话: 在公司网站开发中,我们往往借助于Flask.Django等网站开发框架去提高网站开发效率.那么在面试后端开发工程师的时候,面试官可能就会问到网站开发的底层原理是什么? 我们不止仅 ...
- NC23046 华华教月月做数学
NC23046 华华教月月做数学 题目 题目描述 找到了心仪的小姐姐月月后,华华很高兴的和她聊着天.然而月月的作业很多,不能继续陪华华聊天了.华华为了尽快和月月继续聊天,就提出帮她做一部分作业. 月月 ...
- 019(The XOR Largest Pair)(字典树)
题目:http://ybt.ssoier.cn:8088/problem_show.php?pid=1472 题目思路:异或是啥呀? 异或就是把两个数字变成位数相同的二进制在同位比较,相同为0,不同为 ...
- Overfitting & Train Set & Test Set
假设数据集是独立同分布的,可以将数据集划分为不同的比例:Train Set and Test Set. 同时在Train Set and Test Set上做精度测试,或者隔一段时间在Test Set ...