Mvc连接API +Linq查询+如何跨域
时间:2021-07-20
本文章向大家介绍Mvc连接API +Linq查询+如何跨域,主要包括Mvc连接API +Linq查询+如何跨域使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、MVC+EF
不管是MVC 还是EF 都有文件夹 Controllers 下边的文件必须以Controller 结尾
WEBAPI 接口不要使用中文名称
二、Linq 查询
1.简单的linq查询语法
var list = from a in db.Students select new ViewModel { Sid = a.Sid, Age = a.Age, Sname = a.Sname };
2.多表联查
var list = from a in db.Students join b in db.NClasss on a.Nid equals b.Nid select new ViewModel { Nid = b.Nid, NName = b.NName, Sid = a.Sid, Age = a.Age, Sname = a.Sname };
三、MVC访问API
首先必须跨域
如何跨域?
一、先将跨域请求复制到API项目中的web.cofig中的<system.webServer>方法中
<!--跨域请求:三个配置信息--> <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>
二、将跨域设置方法复制到API项目中的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(); } }
原文地址:https://www.cnblogs.com/713kk/p/15037078.html
- Python文学化编程 - Jupyter notebook使用和插件拓展
- PoisonCake(毒蛋糕):内置于手机ROM的恶意代码模块
- Spring+SpringMVC+MyBatis整合
- Python之numpy数组学习(五)——广播
- WordPress再悲剧:WPcache-Blogger感染事件影响五万WordPress网站
- 浅谈神经机器翻译
- 窃取Facebook用户信息:利用Android同源策略漏洞的恶意应用被发现
- 关于React Native 安卓首屏白屏优化
- 浅谈spring security 403机制一、无权限访问二、匿名访问三、有权限访问原因机制指定AccessDeniedHandler指定error-page情景原因结论
- Python之numpy数组学习(二)
- Intent 属性详解(上)
- 复仇行动:Notepad++官网被圣战组织黑了
- 四大组件的纽带——Intent
- 利用HTC One漏洞破解手机PIN密码
- 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 数组属性和方法
- Python 每日一题
- Python每日一题:MRO
- Python每日一题:变量交换
- Python每日一题:__new__ 与 __init__
- Python每日一题:标准库
- Python笔试面试题总结(一)
- Python笔记题编程题答案
- Python每日一题:装饰器(一)
- Python每日一题:关于闭包
- Python每日一题:标准库中的装饰器
- 神器 tmux 介绍
- Iterable、Sequece、Iterator、generator
- leetcode.1071. Greatest Common Divisor of Strings
- Python else与上下文管理器
- 深入分析iter()方法