信息发布系统 Jquery+MVC架构开发(7) Controller层
来源:互联网 发布:js 除法 编辑:程序博客网 时间:2024/05/22 09:01
Controller 这一层首先要添加对WCF 的引用:
如下,输入我们自己的wcf地址
http://localhost:8732/Design_Time_Addresses/InfoPub.BLLService/Service1/mex
为了解析嵌套结构的类,我们加入JsonBinder
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Script.Serialization;
namespace InfoPub.Controllers
{
public class JsonBinder<T> : IModelBinder
{
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
// 从䨮请?求¨®中D获?取¨?提¬¨¢交?的Ì?参?数ºy数ºy据Y
var json = controllerContext.HttpContext.Request.Form[bindingContext.ModelName] as string;
// 提¬¨¢交?参?数ºy是º?对?象¨®
if (json.StartsWith("{") && json.EndsWith("}"))
{
JavaScriptSerializer js = new JavaScriptSerializer();
object obj = js.Deserialize<T>(json);
return obj;
}
// 提¬¨¢交?参?数ºy是º?数ºy组Á¨¦
if (json.StartsWith("[") && json.EndsWith("]"))
{
JavaScriptSerializer js = new JavaScriptSerializer();
List<T> obj = js.Deserialize<List<T>>(json);
return obj;
}
return null;
}
}
}
我们依次添加三个controller,Infocontroller,InfoTypeContrller,UserInfoContrller,如下:
注意我们添加空的controller即可,别的controller我们暂用不到,如下:
下面我们添加Controller方法,于InfoController为例说明:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using InfoPub.InfoPubService;
namespace InfoPub.Controllers
{
public class InfoController : Controller
{
private InfoPubServiceClient infoPubService = new InfoPubServiceClient();
public JsonResult GetInfoList([ModelBinder(typeof(JsonBinder<SearchInfo>))]SearchInfo searchInfo)
{
InfoList infoList = new InfoList();
infoList = infoPubService.GetInfoList(searchInfo);
if (infoList.infoResult.Code != 0)
{
return Json(new { Data = infoList, isSuccess = false, message = "GetInfoList fail ", errorCode = infoList.infoResult.Code }, "text/json", JsonRequestBehavior.AllowGet);
}
return Json(new { Data = infoList, isSuccess = true }, "text/json", JsonRequestBehavior.AllowGet);
}
public JsonResult GetInfoById(int infoId)
{
InfoList infoList = new InfoList();
infoList = infoPubService.GetInfoById(infoId);
if (infoList.infoResult.Code != 0)
{
return Json(new { Data = infoList, isSuccess = false, message = "GetInfoById fail ", errorCode = infoList.infoResult.Code }, "text/json", JsonRequestBehavior.AllowGet);
}
return Json(new { Data = infoList, isSuccess = true }, "text/json", JsonRequestBehavior.AllowGet);
}
public JsonResult AddInfo(Info info)
{
InfoResult infoResult = new InfoResult();
infoResult = infoPubService.AddInfo(info);
if (infoResult.Code != 0)
{
return Json(new { Data = infoResult, isSuccess = false, message = "AddInfo fail ", errorCode = infoResult.Code }, "text/json", JsonRequestBehavior.AllowGet);
}
return Json(new { Data = infoResult, isSuccess = true }, "text/json", JsonRequestBehavior.AllowGet);
}
public JsonResult UpdateInfo(Info info)
{
InfoResult infoResult = new InfoResult();
infoResult = infoPubService.UpdateInfo(info);
if (infoResult.Code != 0)
{
return Json(new { Data = infoResult, isSuccess = false, message = "UpdateInfo fail ", errorCode = infoResult.Code }, "text/json", JsonRequestBehavior.AllowGet);
}
return Json(new { Data = infoResult, isSuccess = true }, "text/json", JsonRequestBehavior.AllowGet);
}
public JsonResult DeleteInfo(int infoId)
{
InfoResult infoResult = new InfoResult();
infoResult = infoPubService.DeleteInfo(infoId);
if (infoResult.Code != 0)
{
return Json(new { Data = infoResult, isSuccess = false, message = "DeleteInfo fail ", errorCode = infoResult.Code }, "text/json", JsonRequestBehavior.AllowGet);
}
return Json(new { Data = infoResult, isSuccess = true }, "text/json", JsonRequestBehavior.AllowGet);
}
}
}
- 信息发布系统 Jquery+MVC架构开发(7) Controller层
- 信息发布系统 Jquery+MVC架构开发(4)Model 层
- 信息发布系统 Jquery+MVC架构开发(5)DAL层
- 信息发布系统 Jquery+MVC架构开发(6)BLL层提供WCF 服务
- 信息发布系统 Jquery+MVC架构开发(8)DAL层的补充
- 信息发布系统 Jquery+MVC架构开发(3)解决方案创建)
- 信息发布系统 Jquery+MVC架构开发(9)view1
- 信息发布系统 Jquery+MVC架构开发(9)view2
- 信息发布系统 Jquery+MVC架构开发(9)view2
- 信息发布系统 Jquery+MVC架构开发(1) 需求分析和架构构思
- 信息发布系统 Jquery+MVC架构开发(2) 在EA下进行数据库设计
- asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发2-Model层建立
- 【架构设计】MVP与MVC,实现Android应用层开发
- spring-mvc 非 controller 层获取HttpServletRequest
- spring mvc Controller层(学习一)
- 使用MVC模式开发的Blog发布项目-----2 Controller部分的创建
- 1 Spring MVC View层与Controller层的衔接
- Spring--MVC--如何书写MVC的控制层Controller
- Asp.net服务器控件概述(一)
- 第一个android程序:helloworld
- Web服务器 IIS
- 什么是SYN包 以及SYN攻击原理
- HTML服务器控件(二)
- 信息发布系统 Jquery+MVC架构开发(7) Controller层
- HTML服务器控件(三)
- AMD OpenCL大学课程
- 实例总结C#反射基础知识
- WinForm 下实现一个自动关闭的MessageBox
- 在InfoPath Forms Services中实现联动下拉列表框(一)
- 头文件相互包含与前置声明
- 所有程序员都应至少读两遍的十篇论文
- 在InfoPath Forms Services中实现联动下拉列表框(二)