在ASP.NET MVC中json的应用(即JsonResult)

简介:

编号:ylbtech  DotNet100010011

1,博文简介

 本博文提供了两种解决方案。

a)ajax+Handler

b) ajax+ JsonResult

2,a)例子代码

  1, /Views/Home/Index.aspx  提交页面

复制代码
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>

<!DOCTYPE html>

<html>
<head runat="server">
    <title>index</title>
    <script src="/Scripts/jquery-1.4.4.js" type="text/javascript"></script>
    <script type="text/javascript">
        var login = function () {
            var data = { "username": $.trim($("#username").val()), "pwd": $.trim($("#pwd").val()) }

            //            $.post("/Handlers/Login.ashx", data, function (message) {
            //                if (message.Success) {
            //                    alert(message.Msg);
            //                }
            //                else {
            //                    alert(message.Msg);
            //                }
            //            }, "json");

            $.ajax({ type: "post",url:"/Handlers/Login.ashx", data: data, success: function (message) {
                if (message.Success) {
                    alert(message.Msg);
                }
                else {
                    alert(message.Msg);
                }
            },dataType:"json"
            });
        }
    </script>
</head>
<body>
<div id="nav">
<a>ajax+Handler</a> <a href="/Home/Index2">ajax+action</a>
</div>
    <div>
        <h3>Login</h3>
        Username:<input id="username" name="username" type="text" /><br />
        Userpass:<input id="pwd" name="pwd" type="password" /><br />
        <button type="button" onclick="login()" >Submit</button>
    </div>
</body>
</html>
复制代码

2, /Handlers/Login.ashx  (处理程序)

复制代码
using System.Web;

using System.Web.Script.Serialization;  //引用,序列化程序集
namespace Mvc1.Handlers
{
    /// <summary>
    /// Login 的摘要说明
    /// </summary>
    public class Login : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";

            string username = context.Request["username"];
            string pwd = context.Request["pwd"];

            message msg = null;
            if (username == "rain" && pwd == "m123")
            {
                msg = new message(true, "S");
            }
            else
            {
                msg = new message(false, "F");
            }
            //创建序列化对象
            JavaScriptSerializer jss = new JavaScriptSerializer();

            context.Response.Write(jss.Serialize(msg)); //返回json格式对象
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
        /// <summary>
        /// 提示信息
        /// </summary>
        class message
        {
            bool success;
            string msg;

            public message(bool success, string msg)
            {
                this.success = success;
                this.msg = msg;
            }

            public bool Success
            {
                get { return success; }
                set { success = value; }
            }
            public string Msg
            {
                get { return msg; }
                set { msg = value; }
            }
        }
    }
}
复制代码

 

 3,b)例子代码

1, /Views/Home/Index2.aspx

复制代码
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>

<!DOCTYPE html>
<html>
<head runat="server">
    <title>Index2</title>
    <script src="/Scripts/jquery-1.4.4.js" type="text/javascript"></script>
    <script type="text/javascript">
        var login = function () {
            var data = { "username": $.trim($("#username").val()), "pwd": $.trim($("#pwd").val()) }

//            $.post("/Home/Login", data, function (message) {
//                if (message.success) {
//                    alert(message.msg);
//                }
//                else {
//                    alert(message.msg);
//                }
//            }, "json");

            $.ajax({ type: "post", url: "/Home/Login", data: data, success: function (message) {
                if (message.Success) {
                    alert(message.Msg);
                }
                else {
                    alert(message.Msg);
                }
            }, dataType: "json"
            });
        }
    </script>
</head>
<body>
    <div id="nav">
        <a href="/Home/Index">ajax+Handler</a>&nbsp; <a>ajax+action</a>
    </div>
    <div>
        <h3>
            Login</h3>
        Username:<input id="username" name="username" type="text" /><br />
        Userpass:<input id="pwd" name="pwd" type="password" /><br />
        <button type="button" onclick="login()">
            Submit</button>
    </div>
</body>
</html>
复制代码

 2, /Controllers/HomeController.cs

复制代码
using System.Web.Mvc;

namespace Mvc1.Controllers
{
    public class HomeController : Controller
    {
        //
        // GET: /Home/

        public ActionResult Index()
        {
            return View();
        }
        //
        // GET: /Home/Index2
        public ActionResult Index2()
        {
            return View();
        }

        // Post: /Home/Login
        [HttpPost]
        public JsonResult Login()
        {
            string username=Request["username"];
            string pwd = Request["pwd"];

            message msg = null;

            if (username == "rain" && pwd == "m123")
            {
                msg = new message(true, "Success");
            }
            else
            {
                msg = new message(false, "Fail");
            }

            return Json(msg);
        }
    }

    class message
    {
        bool success;
        string msg;

        public message(bool success, string msg)
        {
            this.success = success;
            this.msg = msg;
        }

        public bool Success
        {
            get { return success; }
            set { success = value; }
        }
        public string Msg
        {
            get { return msg; }
            set { msg = value; }
        }
    }
}
复制代码

 

本文转自ylbtech博客园博客,原文链接:http://www.cnblogs.com/ylbtech/archive/2012/10/11/2719545.html,如需转载请自行联系原作者

相关文章
|
4月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
46 0
|
16天前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
22 0
|
2月前
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界
32 0
|
2月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
110 5
|
7月前
|
JSON 前端开发 Java
构建健壮的Spring MVC应用:JSON响应与异常处理
构建健壮的Spring MVC应用:JSON响应与异常处理
35 0
|
5月前
|
JSON 前端开发 Java
Spring mvc-文件上传与JSON-学习笔记
Spring mvc-文件上传与JSON-学习笔记
41 2
|
6月前
|
开发框架 自然语言处理 前端开发
基于ASP.NET MVC开发的、开源的个人博客系统
基于ASP.NET MVC开发的、开源的个人博客系统
52 0
|
2月前
mvc.net分页查询案例——mvc-paper.css
mvc.net分页查询案例——mvc-paper.css
5 0
|
4月前
|
XML 前端开发 定位技术
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
C#(NET Core3.1 MVC)生成站点地图(sitemap.xml)
30 0
|
4月前
|
前端开发
.net core mvc获取IP地址和IP所在地(其实是百度的)
.net core mvc获取IP地址和IP所在地(其实是百度的)
128 0