学习 MVC,EF 完成跨域

注意点:

不管是MVC 还是EF 都有文件夹 Controllers(放控制器的)     下边的文件必须以Controller 结尾

WEBAPI 接口不能使用中文名称

 

一,Linq查询

  多表联查

  • IQueryable<XinXi> page = from a in db.Users
                                        join b in db.LeiXing
                                        on a.LId equals b.LId
                                        select new XinXi
                                        {
                                            LId = a.UId,
                                            UName = a.UName,
                                            LName = b.LName
                                        };

详细语法可以查:https://www.cnblogs.com/knowledgesea/p/3897665.html

 

二,在API中方法控制器返回值类型用IHttpActionResult

public IHttpActionResult GetList(int LId ,int pageIndex=1,int pageSize=3)
      {
          int totalCount = 0, pageCount = 0;
          var list = bll.GetList(LId, pageIndex, pageSize, ref totalCount, ref pageCount);
?
          return Json(new { list, pageIndex, pageSize, pageCount });
      }

new { list, pageIndex, pageSize, pageCount }是一个匿名类型




三,Postman使用

四,完成跨域: MVC访问APIWEBAPI 配置 跨域 (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();
          }
      }
?

 注:标题段落格式无法更改,明天再稍作修改

学习 MVC,EF 完成跨域

上一篇:blivechat 在 OBS 中使用 BasicAuth URL 登录


下一篇:CSS 语法