惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Secure Thoughts
P
Privacy International News Feed
T
Tenable Blog
L
Lohrmann on Cybersecurity
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Threat Research - Cisco Blogs
S
Securelist
C
CXSECURITY Database RSS Feed - CXSecurity.com
Cisco Talos Blog
Cisco Talos Blog
T
The Exploit Database - CXSecurity.com
S
Schneier on Security
P
Privacy & Cybersecurity Law Blog
Vercel News
Vercel News
Cyberwarzone
Cyberwarzone
月光博客
月光博客
T
The Blog of Author Tim Ferriss
Scott Helme
Scott Helme
爱范儿
爱范儿
Stack Overflow Blog
Stack Overflow Blog
C
Cisco Blogs
aimingoo的专栏
aimingoo的专栏
博客园 - 司徒正美
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
P
Proofpoint News Feed
A
Arctic Wolf
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
L
LangChain Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
阮一峰的网络日志
阮一峰的网络日志
Simon Willison's Weblog
Simon Willison's Weblog
T
Tor Project blog
Security Latest
Security Latest
Blog — PlanetScale
Blog — PlanetScale
G
GRAHAM CLULEY
V
Vulnerabilities – Threatpost
博客园 - 三生石上(FineUI控件)
I
InfoQ
Spread Privacy
Spread Privacy
B
Blog RSS Feed
Microsoft Azure Blog
Microsoft Azure Blog
S
SegmentFault 最新的问题
云风的 BLOG
云风的 BLOG
Last Week in AI
Last Week in AI
MongoDB | Blog
MongoDB | Blog
C
CERT Recently Published Vulnerability Notes
A
About on SuperTechFans
博客园_首页
Engineering at Meta
Engineering at Meta
Project Zero
Project Zero
Latest news
Latest news

博客园 - 似水流年-johnhuo

架构师向左,项目经理向右?? 今天迈出第一步,开始了解iphone开发 学习objective-c的一些特殊的地方 信息发布系统 Jquery+MVC架构开发(8)DAL层的补充 信息发布系统 Jquery+MVC架构开发(6)BLL层提供WCF 服务 . 信息发布系统 Jquery+MVC架构开发(5) DAL层 信息发布系统 Jquery+MVC架构开发(4) Model 层 . 信息发布系统 Jquery+MVC架构开发(3) 解决方案创建 信息发布系统 Jquery+MVC架构开发(2) 在EA下进行数据库设计 信息发布系统 Jquery+MVC架构开发(1) 需求分析和架构构思 c# 设计模式(三)行为型 c# 设计模式(二)结构型 c# 设计模式(一)创建型 .NET平台上的Model-View-Presenter模式实践 关于cmmi的一些理解及资料 iphone 开发学习 C语言指针总结 Android 开发网站,记录一下 使用 TRY/CATCH 语句解决 SQL Server 2005 死锁
信息发布系统 Jquery+MVC架构开发(7) Controller层 .
似水流年-johnhuo · 2011-07-24 · via 博客园 - 似水流年-johnhuo

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);

        }

    }

}