一个AJAX的请求。讲诉Json的使用示例
mvc使用JsonResult返回Json数据
<控制器>
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Configuration; using System.Data.SqlClient; using System.Data; using JSON.Models; namespace JSON.Controllers { public class HomeController : Controller { public ActionResult Index() { return View(); } /// <summary> /// 获取年龄 /// </summary> /// <param name="username"></param> /// <returns>返回一个字符串</returns> public ActionResult GetAge(string username) { var age = ""; if (!string.IsNullOrWhiteSpace(username)) { string sql = "select Age from t_user where UserName=@username"; age = (SqlHelper.ExecuteScalar(sql, new SqlParameter("username", username))).ToString(); } return Content(age); } /// <summary> /// 获取姓名 /// </summary> /// <param name="id"></param> /// <returns>方法放回一个Table表的Json对象</returns> public ActionResult GetName(int id) { string sql = "select * from t_user where id=@id"; DataTable dt=SqlHelper.ExecuteDataTable(sql,new SqlParameter("id",id)); var data = DataTableToJson.ToJson(dt); //调用DataTableToJson类的ToJson方法,将dt这边表转换成Json格式 //Type type= data.GetType(); 通过type调试得知data其实就是一个string类型。 return new JsonResult //返回一个JsonResult对象 { Data = new { MyData = data },//将这个Json格式的字符串data 赋值给 JsonResult对象的MyData属性(这个属性名字可以自己随便定的) JsonRequestBehavior = JsonRequestBehavior.AllowGet //允许来自客户端的http get请求 }; } } }
<视图>
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %> <!DOCTYPE html> <html> <head runat="server"> <meta name="viewport" content="width=device-width" /> <title>Index</title> <script src="../../Scripts/jquery-1.7.1.min.js" type="text/javascript"></script> </head> <body> <div id="div1" style="color: Red"> </div> <div id="div2" style="color: Blue"> </div> <input type="button" value="获取姓名" id="btnClick" /> </body> <script type="text/javascript"> $.ajax({ url: "/Home/GetAge", type: "get", //async: true, dataType: "json", data: { username: "周晶" }, success: function (ajaxData) { $("#div1").text(ajaxData); } }); </script> <script type="text/javascript"> $(function () { $("#btnClick").click(function () { $.ajax({ url: "/Home/GetName", dataType: "json", type: "get", data: { id: "1" }, success: function (Dbdata) { //debugger; 如果你要调试的话,就在这里写上debugger执行的时候就会跳到这里来了。然后按F10往下执行 //console.log('Dbdata', Dbdata); //在浏览器控制台输出日志 var str = Dbdata.MyData; //获取key为MyData的这个Json字符串 //console.log('str', str); var obj = eval('(' + str + ')'); //将str这个Json格式的字符串转换成对象 //console.log('obj', obj); //alert('username: ' + obj.UserName); $("#div2").text(obj.UserName); } }) }) }) </script> </html>
SQLHelper
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Configuration; using System.Data.SqlClient; using System.Data; using System.Reflection; namespace JSON.Controllers { public class SqlHelper { /// <summary> /// 获取连接数据库字符串 /// </summary> private static string connStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString; /// <summary> /// 执行查询,并将查询的结果以DataTable的形式返回 /// </summary> /// <param name="sql">要执行的sql语句</param> /// <param name="parameters">sql语句的参数</param> /// <returns>返回值是一个DataTable</returns> public static DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters) { using (SqlConnection conn = new SqlConnection(connStr)) { conn.Open(); //换一种写法,与上面的几种写法稍稍有点不同 using (SqlCommand cmd = new SqlCommand(sql, conn)) { cmd.Parameters.AddRange(parameters); DataTable dt = new DataTable(); using (SqlDataAdapter adapter = new SqlDataAdapter(cmd)) { adapter.Fill(dt); return dt; } } } } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。