‘壹’ 如何使用mvc实现webapi的增删改查
1.创建项目:visual C# —> ASP.NET MVC 4 web应用程序 模板—>web api;
2.注册路由:
路由表中的每一个条目都包含一个路由模板。这个Web API默认的路由模版是"api/{controller}/{id}"。在这个模版中,“api”是一个文字式路径片段,而{controller}和{id}则是占位符变量。
当Web API框架接收一个HTTP请求时,它会试图根据路由表中的一个路由模板来匹配其URI。如果无路由匹配,客户端会接收到一个404(未找到)错误。
3.linq to sql连接数据库
1.建立数据库建表
2.在models文件夹里面新建linq to sql类文件
3.工具->连接到数据库
4.将要用的表拖入设计区
5.获取数据库Getway。"linq to sql class"文件名+Datacontext实例化这个对象,数据表就会映射到一个集合属性中,personDataDataContext db = new personDataDataContext();
6.增删改查
增:
public Boolean Post([FromBody]UserInfo userInfo) {
personDataDataContext db = new personDataDataContext();
var s1 = new test2
{
UserName =userInfo.UserName, Id=userInfo.Id, Age=userInfo.Age
};
if (db.test2.SingleOrDefault<test2>(s => s.Id == userInfo.Id) == null)
{
db.test2.InsertOnSubmit(s1);
db.SubmitChanges();
return true;
} else {
return false;
}
}
删:
public bool Delete(int id)
{
personDataDataContext db = new personDataDataContext();
var deleteperson = db.test2.SingleOrDefault<test2>(s => s.Id == id);
if (deleteperson == null)
{
return false;
} else {
db.test2.DeleteOnSubmit(deleteperson);
db.SubmitChanges();
return true;
}
}
改:
public Boolean Put(int id, [FromBody]UserInfo userInfo)
{
personDataDataContext db = new personDataDataContext();
var editperson = db.test2.SingleOrDefault<test2>(s => s.Id == userInfo.Id);
if (editperson == null)
{
return false;
} else {
editperson.Age = userInfo.Age;
editperson.UserName = userInfo.UserName;
db.SubmitChanges();
return true;
}
查:
public IEnumerable<test2> Get()
{
personDataDataContext db = new personDataDataContext();
var query = from s in db.test2
orderby s.UserName
select s;
return query;
}
// GET api/values/5
public string Get(int id)
{
return "value";
}
这里我新建了一个userinfo类
public class UserInfo { public string UserName { get; set; } public int Id { get; set; } public int Age { get; set; } }
用来接收前端页面ajax请求中的data数据,s => s.Id == userInfo.Id是lamda表达式创建委托方法意思是在db.test2的person集合中查找某个person的Id与userinfo接收到的id相等的person对象
‘贰’ MVC WebApi在调试开发下访问正常,部署到服务器访问不到接口
1、服务器是否正常启动(查看日志)
2、服务器的IP+PORT是否可以访问,查看端口是否被占用
3、若服务正常启动,端口也可以访问,查看你的访问路径是否正确(部署后的上下文webcontent是否与调试中一致)
4、访问不到有很多原因,要看你面对的具体问题去排查,比如报错信息之类~
‘叁’ RESTful架构中的webapi
通过webAPI在server端开发一个借口,在client端调用此借口的完整过程。
(VS2010版本如果包括MVC4也可以创建webAPI,或者vs2012及以上版本)
运行环境:VS2017
开发语言:c#
一、server端
1.创建webapi项目,打开vs2017-文件-新建-项目。
2.在项目中添加Controllers和Models两个文件夹,分别用于存放控制器类和实体类。
在Controllers文件夹中添加API控制器类。
控制类添加完成后,会自动生成,GET,POST,PUT,DELETE四个方法。
通过地址确定方法:
get方式:http://IP地址:端口号/api/控制器名称
post方式:[HttpGet("方法标识名称")] http://IP地址:端口号/api/控制器名称/方法标识名称
添加一个方法,在方法中描述接口需要完成的操作以及返回值。
需要注意事项:
1)传进来参数的数据类型必须与接收的数据类型相同。
二、client端
1.添加控制台应用程序用来测试调用接口是否成功。
2.定义一个方法用来调用接口并返回数据。
3.定义一个restful接口帮助类。
‘肆’ c#mvc中的webapi怎么迫使服务端返回字符串
返回值是string就好了。
publicstringGet(intid)
{
return"字符串";
}
用AJAX取json格式的就是这样的。