• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > Coolite Cool Study 3 MVC + Coolite 的实现代码

Coolite Cool Study 3 MVC + Coolite 的实现代码

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了coolite,coolite.ext.web,study,study的过去式,study是什么意思等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
MVC-Coolite

因为默认的 MVC 的样式文件里对于的 table 和 其他相关样式(h1~h6) 与Coolite有冲突,会导致GridPanel走样,大家记得先把那个table 和  h1~h6的样式清除掉才看到GridPanel的帅脸面 …

项目文件分布:

ProjectFiles

关于Coolite在MVC中的配置文件跟一般webform是一样的。 但在MVC的Global.asax中,需要在 RegisterRoutes 方法里加上这一句:

routes.IgnoreRoute("{exclude}/{coolite}/coolite.axd");

另外 ScriptManager 要注明 IDMode="Static“:

<ext:ScriptManager ID="ScriptManager1" runat="server"  IDMode="Static"/>

其中唯一与一般MVC不同的是,我们需要定义自己的ActionResult来返回Json结果给客户端。因为Coolite 的JsonReader 要求的格式大致都是这样:{data: [{…}], totalCount: …}

关于JsonReader的一般用法:

<ext:JsonReader ReaderID="CustomerID" Root="data" TotalProperty="totalCount"> 

所以, 要继承MVC ActionResult 的抽象方法 public override void ExecuteResult(ControllerContext context)  来返回给 JsonReader   合适口味的 JsonResult , 不然它就不认人了。

以下代码实现了对Json Response & Save Response 的简单封装。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Coolite.Ext.Web;

namespace CooliteMVC.Helper
{ 
  public class AjaxStoreResult : ActionResult
  {
    public AjaxStoreResult() { }

    public AjaxStoreResult(object data)
    {
      this.Data = data;
    }

    public AjaxStoreResult(object data, int totalCount)
      : this(data)
    {
      this.TotalCount = totalCount;
    }

    public AjaxStoreResult(StoreResponseFormat responseFormat)
    {
      this.ResponseFormat = responseFormat;
    }

    private object data;
    public object Data
    {
      get { return this.data; }
      set { this.data = value; }
    }

    private int totalCount;
    public int TotalCount
    {
      get { return this.totalCount; }
      set { this.totalCount = value; }
    }

    private StoreResponseFormat responseFormat = StoreResponseFormat.Load;
    public StoreResponseFormat ResponseFormat
    {
      get { return this.responseFormat; }
      set { this.responseFormat = value; }
    }

    private SaveStoreResponse saveResponse;
    public SaveStoreResponse SaveResponse
    {
      get
      {
        if (this.saveResponse == null)
        {
          this.saveResponse = new SaveStoreResponse();
        }
        return this.saveResponse;
      }
    }

    public override void ExecuteResult(ControllerContext context)
    {
      switch (this.ResponseFormat)
      {
        case StoreResponseFormat.Load:

          string json = Coolite.Ext.Web.JSON.Serialize(Data);
          json = "{data:" + json + ", totalCount:" + 100 + "}";
          context.HttpContext.Response.Write(json);
           
          break;
        case StoreResponseFormat.Save:
          Response response = new Response(true);
          response.Success = this.SaveResponse.Success;
          response.Msg = this.SaveResponse.ErrorMessage;
          StoreResponseData saveResponse = new StoreResponseData();
          saveResponse.Confirmation = this.SaveResponse.ConfirmationList;
          response.Data = saveResponse.ToString();

          response.Write();
          break;
        default:
          throw new ArgumentOutOfRangeException();
      }
    }
 
  }

  public enum StoreResponseFormat
  {
    Load,
    Save
  }

  public class SaveStoreResponse
  {
    private bool success = true;
    private string errorMessage;

    public bool Success
    {
      get { return this.success; }
      set { this.success = value; }
    }

    public string ErrorMessage
    {
      get { return this.errorMessage; }
      set { this.errorMessage = value; }
    }

    public ConfirmationList ConfirmationList { get; set; }
  }
}

AjaxStoreResult 在 CustomerController 中的使用:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Coolite配置 管理软件开发历程之
  • Coolite优化导出Excel文件实现代码
  • Coolite Cool Study 3 MVC + Coolite 的实现代码
  • Coolite Cool Study 2 同时更新多个Tab
  • Coolite Cool Study 1 在Grid中用ComboBox 来编辑数据
  • asp.net Coolite 学习交流

相关文章

  • 2017-05-11asp.net request.PathInfo实现的url重写
  • 2017-05-11Asp.net Mvc 身份验证、异常处理、权限验证(拦截器)实现代码
  • 2017-05-11.NET装饰模式讲解
  • 2017-05-11asp.net中一款极为简单实用的图表插件(jquery)
  • 2017-05-11把js文件编译成dll供页面调用的方法
  • 2017-05-11.NET微信公众号获取OpenID和用户信息
  • 2017-05-11sql server中批量插入与更新两种解决方案分享(asp.net)
  • 2018-08-20Asp.NetCore1.1版本去掉project.json后如何打包生成跨平台包
  • 2017-05-11IE 性能分析工具(asp.net环境)
  • 2017-05-11ASP.NET实现学生管理系统

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • ASP.NET中Literal与Label控件的区别
    • 查看Json输出的*最方便*的方法 (转)
    • 在后台cs中调用js中示例
    • .NET工厂方法模式讲解
    • .net 读取非标准配置文件的小例子
    • AspNetPager与Socut.Data使用方法
    • asp.net下利用JS实现对后台CS代码的调用方法
    • Asp.NEt邮箱验证修改密码通过邮箱找回密码功能
    • 把jQuery的each(callback)方法移植到c#中
    • 适用与firefox ASP.NET无刷新二级联动下拉列表

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有