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 })//用于清除客户端缓存

  • 相关阅读:
    sql 查询所有数据库、表名、表字段总结
    C# 随机数图片
    修改SQL数据库中表字段类型时,报“一个或多个对象访问此列”错误的解决方法
    ASP.NET 高级编程基础第八篇—Request对象和虚拟路径 转
    HTTP 状态码
    SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
    关于VS2010中无法进级EntityFramework的解决办法
    sql 存储过程 执行中 遇到的 问题 小结
    引用不到using System.Data.Entity.Database;(MVC3)
    如何通过ildasm/ilasm修改assem“.NET研究”bly的IL代码 狼人:
  • 原文地址:https://www.cnblogs.com/zipengwings/p/4459280.html
Copyright © 2011-2022 走看看