Web Api+MVC
时间:2021-07-20
本文章向大家介绍Web Api+MVC,主要包括Web Api+MVC使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
不管是MVC 还是EF 都有文件夹 Controllers 下边的文件必须以Controller 结尾
WEBAPI 接口不要使用中文名称
二、Linq 查询
-
多表联查
-
Linq 查询 使用方法
-
var query = from a in db.Students join b in db.Classs on a.CId equals b.CId select new ShowModel { SId = a.SId, Name = a.Name, CId = b.CId, CName = b.CName };
- 匿名类型return Json(new {totalcount,totalpage,list });
三、MVC访问API
-
WEBAPI 配置 跨域 (CORS)
1.Web.config
<!--跨域请求:三个配置信息--> <httpProtocol> <customHeaders> <!--响应类型 (值为逗号分隔的一个字符串,表明服务器支持的所有跨域请求的方法)--> <add name="Access-Control-Allow-Methods" value="GET,POST,PUT,DELETE,OPTIONS"/> <!--响应头设置(Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain)--> <add name="Access-Control-Allow-Headers" value="x-requested-with,content-type"/> <!--如果设置 Access-Control-Allow-Origin:*,则允许所有域名的脚本访问该资源--> <add name="Access-Control-Allow-Origin" value="*" /> <!--<add name="Access-Control-Allow-Origin" value="http://domain1.com, http://domain2.com" /> 设置允许跨域访问的网址--> </customHeaders> </httpProtocol>
2.Global.asax
/// <summary>
/// 跨域设置
/// </summary>
protected void Application_BeginRequest()
{
//OPTIONS请求方法的主要作用:
//1、获取服务器支持的HTTP请求方法;也是黑客经常使用的方法。
//2、用来检查服务器的性能。如:AJAX进行跨域请求时的预检,需要向另外一个域名的资源发送一个HTTP OPTIONS请求头,用以判断实际发送的请求是否安全。
if (Request.Headers.AllKeys.Contains("Origin") && Request.HttpMethod == "OPTIONS")
{
//表示对输出的内容进行缓冲,执行page.Response.Flush()时,会等所有内容缓冲完毕,将内容发送到客户端。
//这样就不会出错,造成页面卡死状态,让用户无限制的等下去
Response.Flush();
}
}
<table class="table table-bordered"> <thead> <tr> <td>ID</td> <td>姓名</td> <td>班级</td> </tr> </thead> <tbody id="list"> </tbody> </table>
<a href="#" onclick="Page('F')">首页</a>
<a href="#" onclick="Page('P')">上一页</a>
<a href="#" onclick="Page('N')">下一页</a>
<a href="#" onclick="Page('L')">尾页</a>
3、Ajax显示分页及查询
<script> var pageindex = 1; var pagesize = 3; var totalcount = 0; var totalpage = 0; $(function () { Show(); Bind(); }) function Show() { $.get('http://localhost:60197/api/Student/GetList?cid=' + $("#cid").val() + '&name=' + $("#name").val() + '&pageindex=' + pageindex + '&pagesize=' + pagesize, res => { totalcount = res.totalcount; totalpage = res.totalpage; $("#list").empty(); var arrhtml = ""; $(res.list).each(function () { arrhtml+= "<tr>" +"<td>" + this.SId + "</td>" +"<td>" + this.Name + "</td>" +"<td>" + this.CName + "</td>" +"</tr>"; }) $("#list").append(arrhtml); }) } function Page(o) { switch (o) { case 'F': pageindex = 1; break; case 'P': pageindex= pageindex <= 1 ? pageindex : pageindex - 1; break; case 'N': pageindex = pageindex >= totalpage ? pageindex : pageindex + 1; break; case 'L': pageindex = totalpage; break; } Show(); } function Bind() { $.get('http://localhost:60197/api/Student/Bind', res => { $(res).each(function () { $("#cid").append("<option value=" + this.CId + ">" + this.CName + "</option>") }) }) } </script>
原文地址:https://www.cnblogs.com/li0536/p/15037074.html
- 手写快排模版
- COGS 68. [NOIP2005] 采药【01背包复习】
- UESTC 30 &&HDU 2544最短路【Floyd求解裸题】
- 我的第一个网页制作:Hello World!
- UESTC 1584 Washi与Sonochi的约定【树状数组裸题+排序】
- Hyperledger - 超级账本项目:简介,安装,案例
- 我的第三个网页制作:b、i、s、u、sub、sup标签的使用
- 【AlphaGo Zero 核心技术-深度强化学习教程代码实战04】Agent类和SARSA算法实现
- 我的第二个网页制作:p,hn,br标签的使用
- 超级账本项目:架构设计
- 我的第四个网页制作:列表标签
- “盛大游戏杯”第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛题解&&源码【A,水,B,水,C,水,D,快速幂,E,优先队列,F,暴力,G,贪心+排序,H,STL乱搞,I,尼姆博弈,J,差分dp
- 虎嗅主站盲打成功(已进后台)
- 我的第五个网页制作:pre、html转义、abbr标签的使用
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- JavaScript进阶教程(6)—硬核动图让你轻松弄懂递归与深浅拷贝
- Spring:JDBC Template,声明式事务
- Spring:讲解编程题
- SpringMVC:基本应用
- SpringMVC:进阶
- SpringMVC:SSM 整合
- 12 | Tornado源码分析:BaseIOStream 对象(上)
- 数据一致性校验及数据同步,运维必看
- Windows使用scoop包管理器安装RabbitMQ
- 深入理解web协议(二):DNS、WebSocket
- Elasticsearch:使用 function_score 及 soft_score 定制搜索结果的分数
- Elasticsearch:基于 Vector 的打分
- RocketMQ的发送模式和消费模式
- 实现一个简单的JS效果
- 1000000 / 60S 的 RocketMQ 不停机,扩容,平滑升级!