webapi 接口规则
[HttpPost]
[AuthorizeFilter]
public HttpResponseMessage DeleteStudentInfo([FromBody] object value)
{
ApiResult<StudentEntity> res = new ApiResult<StudentEntity>();
try
{
StudentEntity model = JsonConvert.DeserializeObject<StudentEntity>(JsonConvert.SerializeObject(value));
if (model != null && model.id > )
{
model.IsDelete = ;
StudentLogic bll = new StudentLogic();
int result = ;
result = bll.UpdateCommand(model);
if (result > )
{
res.ResultFlag = ;
res.ResultMsg = "操作成功";
res.ResultObj = null;
}
else
{
res.ResultFlag = ;
res.ResultMsg = "操作失败";
res.ResultObj = null;
}
}
else
{
res.ResultFlag = ;
res.ResultMsg = "参数错误";
res.ResultObj = null;
}
}
catch (Exception ex)
{
res.ResultFlag = ;
res.ResultMsg = ex.Message;
res.ResultObj = null;
//写错误日志
WebLogTool.WriteLog(ex, "StudentController-DeleteStudentInfo");
}
return HttpHelper.ResponseMessagetoJson(res);
}
json 处理
#region 程序集 Newtonsoft.Json.dll, v4.5.0.0
// D:\wanglei\Wisdom.JPClient\trunk\Code\Wisdom.JPClient.WebApi\bin\Newtonsoft.Json.dll
#endregion
public class ApiResult<T>
{
int _ResultFlag;
/// <summary>
/// 接口调用状态(1成功 0系统错误 其余状态自定义)
/// </summary>
public int ResultFlag
{
get { return _ResultFlag; }
set { _ResultFlag = value; }
}
string _ResultMsg;
/// <summary>
/// 接口返回消息
/// </summary>
public string ResultMsg
{
get { return _ResultMsg; }
set { _ResultMsg = value; }
}
T _ResultObj;
/// <summary>
/// 接口返回对象
/// </summary>
public T ResultObj
{
get { return _ResultObj; }
set { _ResultObj = value; }
}
} /// <summary>
/// Web Api 返回对象
/// </summary>
public class ApiResult_<T>
{
string _ResultFlag;
/// <summary>
/// 接口调用状态(1成功 0系统错误 其余状态自定义)
/// </summary>
public string ResultFlag
{
get { return _ResultFlag; }
set { _ResultFlag = value; }
}
string _ResultMsg;
/// <summary>
/// 接口返回消息
/// </summary>
public string ResultMsg
{
get { return _ResultMsg; }
set { _ResultMsg = value; }
}
T _ResultObj;
/// <summary>
/// 接口返回对象
/// </summary>
public T ResultObj
{
get { return _ResultObj; }
set { _ResultObj = value; }
}
}
api result 类
public void DgUserDataBind()
{
if (pagerUser.PageIndex == )
{
pagerUser.PageSize = ;//默认值20 自定义的时候需要传
} //查询条件
Hashtable ht = new Hashtable();
//if (!string.IsNullOrEmpty(txtStuNo.Text.Trim()))//学员编号
//{
// ht["StuNo"] = txtStuNo.Text.Trim();
//} //if (cboClass.SelectedIndex > 0)//班级
//{
// ht["Class"] = cboClass.SelectedValue.ToString();
//} if (cboAppointmentStatus.SelectedIndex > )//预约状态
{
ht["AppointmentStatus"] = cboAppointmentStatus.SelectedValue.ToString();
}
//if (cboTimeQuantum.SelectedIndex > 0)//时间段
//{
// ht["TimeQuantum"] = ((CmbboxModel)cboTimeQuantum.SelectedItem).value;
//}
if (cboRegSite.SelectedIndex > )//报名点
{
ht["RegSite"] = cboRegSite.SelectedValue.ToString();
}
if (cboTrainingGround.SelectedIndex > )//训练场
{
ht["TrainingGround"] = cboTrainingGround.SelectedValue.ToString();
} if (!string.IsNullOrEmpty(cmbSchool.SelectedSchoolId))
{
ht["Schoolid"] = cmbSchool.SelectedSchoolId;
} var lstMoreCondition = ((MoreSearchConditionBar.ItemsSource as ObservableCollection<MoreSearchConditionModel>) ?? new ObservableCollection<MoreSearchConditionModel>());
var item = lstMoreCondition.Where(p => p.ConditionName == "教练员").FirstOrDefault();
if (item != null)//教练
{
ht["Coach"] = item.ConditionText.Trim();
}
item = lstMoreCondition.Where(p => p.ConditionName == "预约开始日期").FirstOrDefault();
if (item != null)//预约日期
{
ht["StartDate"] = item.ConditionText.Trim();
}
item = lstMoreCondition.Where(p => p.ConditionName == "预约结束日期").FirstOrDefault();
if (item != null)
{
ht["EndDate"] = item.ConditionText.Trim();
}
item = lstMoreCondition.Where(p => p.ConditionName == "学车分类").FirstOrDefault();
if (item != null)//学车分类
{
ht["StuCarType"] = item.ConditionText.Trim();
}
item = lstMoreCondition.Where(p => p.ConditionName == "车型").FirstOrDefault();
if (item != null)//车型
{
ht["CarType"] = item.ConditionText.Trim();//((Wisdom.JPClient.Model.CmbboxModel)(cboCarType.SelectedItem)).value;
} //初始化查询参数
PagePostParam postModel = new PagePostParam() { PageIndex = pagerUser.PageIndex, PageSize = pagerUser.PageSize, OrderBy = "id", OrderType = , ht = ht };
//调用api取值
KeyValuePair<bool, string> result = HttpHelper.PostWebRequest(BaseInfo.Cur.WebApiUrl + "StudentAppointment/getListByParam", postModel);
PageResultTable pageresult = new PageResultTable();
if (result.Key)
{
ApiResult<PageResultTable> res = JsonConvert.DeserializeObject<ApiResult<PageResultTable>>(result.Value);
if (res.ResultFlag == )
{
pageresult = res.ResultObj as PageResultTable;
grid1.ItemsSource = pageresult.dt.DefaultView;
DT = pageresult.dt;
pagerUser.TotalCount = pageresult.RowsCout;
}
else
{
MsgBox.Show(res.ResultMsg);
}
}
else
{
MsgBox.Show("操作失败!");
}
}
上面是调用端解析写法
webapi 接口规则的更多相关文章
- C# webapi 路由规则和接收数据
1:新建的web api项目 默认的访问api方式: (get,post,delect,put) api+控制器 以Post为例子 post提交单个参数: 接收方法 post提交多个参数 接 ...
- WebApi接口 - 如何在应用中调用webapi接口
很高兴能再次和大家分享webapi接口的相关文章,本篇将要讲解的是如何在应用中调用webapi接口:对于大部分做内部管理系统及类似系统的朋友来说很少会去调用别人的接口,因此可能在这方面存在一些困惑,希 ...
- C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解
前言:已经有一个月没写点什么了,感觉心里空落落的.今天再来篇干货,想要学习Webapi的园友们速速动起来,跟着博主一起来学习吧.之前分享过一篇 C#进阶系列——WebApi接口传参不再困惑:传参详解 ...
- C#进阶系列——WebApi 接口参数不再困惑:传参详解
前言:还记得刚使用WebApi那会儿,被它的传参机制折腾了好久,查阅了半天资料.如今,使用WebApi也有段时间了,今天就记录下API接口传参的一些方式方法,算是一个笔记,也希望能帮初学者少走弯路.本 ...
- ASP.NET MVC对WebAPI接口操作(添加,更新和删除)
昨天<怎样操作WebAPI接口(显示数据)>http://www.cnblogs.com/insus/p/5670401.html 既有使用jQuery,也有使作HttpClient来从数 ...
- WebApi 接口参数不再困惑:传参详解
阅读目录 一.get请求 1.基础类型参数 2.实体作为参数 3.数组作为参数 4.“怪异”的get请求 二.post请求 1.基础类型参数 2.实体作为参数 3.数组作为参数 4.后台发送请求参数的 ...
- 利用委托与Lambada创建和调用webapi接口
前言 现在项目中用的是webapi,其中有以下问题: 1.接口随着开发的增多逐渐增加相当庞大. 2.接口调用时不好管理. 以上是主要问题,对此就衍生了一个想法: 如果每一个接口都一个配置文件来管 ...
- 【转】C#进阶系列——WebApi 接口参数不再困惑:传参详解
原文地址:http://www.cnblogs.com/landeanfen/archive/2016/04/06/5337072.html 阅读目录 一.get请求 1.基础类型参数 2.实体作为参 ...
- WebAPI接口测试之matthewcv.WebApiTestClient
WebAPI接口测试之matthewcv.WebApiTestClient matthewcv.WebApiTestClient 1.安装matthewcv.WebApiTestClient包 打开v ...
随机推荐
- android Button隐藏
两种方式: xml方式 和 java代码方式: 可见(visible) XML文件:android:visibility="visible" Java代码:view.setVisi ...
- Java I/O学习(一)
写作目的 自学Java,Java中流的概念比较复杂,故专门作一整理.期望开始学习的童鞋,看完本文后对Java流有一个大致的认识.主要分三个小篇: 一.概述.输入/输出字节流 二.输入/输出字符流.装饰 ...
- Centos6.4 为用户添加sudo功能
sudo即super user do,以超级管理员的方式运行命令.使用时,只需在命令最前面加上sudo即可. 要为用户添加sudo功能,需要修改sudo的配置文件: vi /etc/sudoers ( ...
- [资源共享]C#+AE构建GIS桌面端应用系统框架-全代码
转自:http://www.cnblogs.com/gispeng/archive/2008/10/06/1304534.html [资源共享]C#+AE构建GIS桌面端应用系统框架-全代码 ( ...
- MVC批量导出数据方法
近段时间做了个数据平台,其中涉及到批量导出CSV格式数据的业务,主要使用了部分视图和视图之间传值等知识点,今天做了下整理,特此分享下: 主要分为四步: 1:要打印的数据格式陈列View: 2:自定义导 ...
- [转]NHibernate之旅(10):探索父子(一对多)关联查询
本节内容 关联查询引入 一对多关联查询 1.原生SQL关联查询 2.HQL关联查询 3.Criteria API关联查询 结语 关联查询引入 在NHibernate中提供了三种查询方式给我们选择:NH ...
- TFS2010中文版安装
VS2010的中文版出来一段时间了,对TFS2010的了解,也有一段时间了,只不过中文版还是首次见到.于是把第一次安装的图片分享出来,公供参数. TFS2010安装环境是操作系统为Windows Se ...
- C#4.0中var和dynamic的区别
1. var表示“变量的类型是在编译时决定的”, var让你在初始化变量时少输入一些字,编译器会根据右值来推断出变量的类型, var只能用于局部变量的定义,你不能把类的属性定义成 var,也不能把方法 ...
- HDOJ/HDU 2565 放大的X(分段思考~)
Problem Description 请你编程画一个放大的'X'. 如3*3的'X'应如下所示: X X XX X5*5的'X'如下所示:X X X X X X XX X Input 输入数据第一行 ...
- Unity优化之纹理集
发现了一个比较好用的插件:ProDrawCallOptimizer. 它是用来合并纹理和材质的,而且用起来非常简便. 操作方法: 1.将包拖入Unity5中:ps:由于版本问题,直接双击包时导入不了 ...