首页 > 应用开发 > IT综合 > Taurus.MVC WebAPI 入门开发教程
框架在收集方法时,仅收集第一个修饰符为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文档(自带的,后续会讲述到)
示例网址:/hello/world/1/2/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")}
有一些基础的属性验证,比如,不能为空,格式错误,类型错误等。
以前每次都要在业务代码写判断,现在直接用属性就可以提前处理掉,简化业务代码。
示例代码:
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、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();
}
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70020836/viewspace-2910085/ ,如需转载,请注明出处,否则将追究法律责任。