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 ...
随机推荐
- Layer Normalization和Batch Normalization
Layer Normalization 总览 针对同一通道数的图片的H*W进行层正则化,后面的γ和β是可以学习的参数,其中这两个的维度和最后一个的维度相同 例如特征图矩阵维度为[3, 577, 768 ...
- 详解TCP四次挥手(断开TCP连接过程)
在讲述TCP四次挥手,即断开TCP连接的过程之前,需要先介绍一下TCP协议的包结构. TCP协议包结构: 这里只对涉及到四次挥手过程的字段做解释 (1) 序号(Sequence number) 我们通 ...
- Python报错 ImportError: DLL load failed while importing win32api: %1 不是有效的 Win32 应用程序 的解决方法
今天在用jupyter notebook 的时候发生了kernel error,点开之后提示了以下报错信息 Traceback (most recent call last): File " ...
- bintree
Python实现二叉树的建立与遍历 创建(二叉)树节点类 class Node: def __init__(self,data,l=None,r=None): self.val = data self ...
- mybatis-plus对空字段 时间进行填充
package com.tanhua.sso.handler; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; imp ...
- SpringCloudAlibaba学习(解决SpringBoot初始化以及Nginx启动出错问题)
微服务强调每个服务都是单独的数据库 在不使用微服务的情况下可以采用分布式架构,通过Template来调用远程的Rest接口 但这种方式维护起来很麻烦,而且有很多弊端. 一.环境搭建 1.首先搭建Spr ...
- Vue回炉重造之三次封装axios
源码目录 在src目录下建立一个request文件夹.里面建立两个文件: http.js api.js 源码内容 http.js import axios from 'axios' // 引入axio ...
- 安装ImageMagick7.1库以及php的Imagick扩展
由于ImageMagick7以下不支持heic等图片格式,所以重新安装了ImageMagick7.1版本支持heic格式,并写此文章记录一下. 如果安装过程中遇到一些未知的错误,https://ima ...
- VisionPro · C# · 图像显示十字光标
程序通过 CogRecordDisplay 显示控件显示视觉运行结果图像,当我们对调试时,可能需要用到图像中心十字对位光标. 本文通过VisionPro两个拟合线工具,一个拟合圆工具在图像中画出光标, ...
- sql-DCL用户及权限管理及其他常用命令-mysql
查看系统信息 SHOW PROCESSLIST -- 显示哪些线程正在运行 SHOW VARIABLES -- 显示系统变量信息 SELECT now(), user(), version(); -- ...