zoukankan      html  css  js  c++  java
  • asp.net-mvc中的ajax

    【1】

    AJAX技术概述

    客户端 

    HTML DOM
    CSS
    JavaScript
    XMLHttpRequest
    jQuery

    服务器端

    ASP.NET
    JSP
    PHP
    其他

    他们是以Http协议,使用下面的数据格式进行交互

    数据格式: 文本 XML JSON HTML

    【2】

    asp.net mvc中处理ajax请求的流程

    动作方法(action)-负责处理Ajax 请求

    职责1-接收请求的数据,与非ajax的请求是一致的

    职责2-返回客户端需要的数据 文本 JSON HTML 其他

    【3】

    例子,通过action返回一个文本

    [HttpPost]
    public ActionResult DeleteGroup(int? id)
    {
        if (id.HasValue)
        {
            //省略代码
            context.PrivateGroups.Remove(removedItem);
            if (context.SaveChanges() > 0)//假如执行成功,操作数量大于0
            {
                return Content(  "1"  );//成功返回1
            }
        }
        return Content(  "0" );//失败返回0
    }

     例子,返回Html

    public ActionResult ListGroups() {  

       User user = Session["CurrentUser"] as User;   

      if(user == null)  {

       return this.Content("<script>window.location='"         + Url.Action("Login", "Account") + "'</script>");     

      }          

         return PartialView("GroupList"); }

    例子,返回Json

    public ActionResult ListGroupsToJson() {

        //分组列表数据

         var groups = (from g in context.PrivateGroups              

                where g.OwnerId == userId   

                   select  g ).ToList();   //通过linq表达式查询

      return Json(groups,JsonRequestBehavior.AllowGet); //返回一个json

    }

    Json使用问题

    1,Get 方式请求JSON 数据错误

    原因:遗漏JsonRequestBehavior.AllowGet参数

    return Json(groups,JsonRequestBehavior.AllowGet);

    2.Json()序列化实体对象错误

    原因:直接序列化EF 对象,而且属性循环依赖

    context.Configuration.ProxyCreationEnabled = false;

    【比较】


    纯文本    适合保存单个数据,数据传输量小,客户端处理较多 保存数据处理结果,比如0或1的标识等


    结构化数据(JSON等) 适合保存一行或多行数据,数据传输量较小,客户端处理较多

    展示列表数据,客户端使用jQuery网格或树等插件来展示数据


    HTML(分部视图等) 任意数据,数据传输量大,客户端处理较少 

    显示一定结构的任意内容,列表数据、表单等

    【4】

    小技巧

    $.ajaxSetup({ cache: false })//用于清除客户端缓存

  • 相关阅读:
    梳理NLP预训练模型
    听懂NLPer说的是啥
    自然语言处理之HMM模型分词
    入门自然语言处理(NLP)的门
    js轮播图
    js中for循环this的使用
    vue-cli3的vue.config.js配置信息
    vuex的commit、payload、actions、setter、mutations等方法案例
    Vue做数据和视图原理(数据劫持)
    fetch的使用方法(基于promise方法进行增删改查)
  • 原文地址:https://www.cnblogs.com/zipengwings/p/4459280.html
Copyright © 2011-2022 走看看