当前位置:编程学习 > C#/ASP.NET >>

json数据在前台的解析问题【基于.net mvc2】

View 层:
/***************************************************************************************/
 function f3() {
   var xmlhttp = new XMLHttpRequest(window.XMLHttpRequest);

        xmlhttp.open("post","http://localhost:6696/Home/jl");
        xmlhttp.onreadystatechange = function () {
            if (xmlhttp.readyState == 4) {
                if (xmlhttp.status == 200) {
                    alert(xmlhttp.status);
                    //...
                 //如何解析此json数据?
                }
                else { alert("返回错误"); }
            }

        }
        xmlhttp.send();
    } 

配置等均无问题,通过路由直接访问M层浏览器可以正常显示json数据:
{"Table":[{"proID":1,"proName":"北京市"},{"proID":2,"proName":"天津市"},{"proID":3,"proName":"上海市"}]} --------后附录了M和C的代码。
/***************************************************************************************/

 Model: 
  using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.Reflection;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;

namespace dis.Models
{
    public class Jilian
    {
        public DataSet getdata()
        {   
            string sqlstr = "Data Source=EYP23PS8WABRKD2;Initial Catalog=discuzz;Integrated Security=True";
            SqlConnection con = new SqlConnection(sqlstr);
            con.Open();
            string cmdstr = "select * from province ";
            DataSet ds=new DataSet();
            SqlDataAdapter ad=new SqlDataAdapter(cmdstr,con);
            ad.Fill(ds);
            return ds;
        }

        public string jsontran()
        {
           
                string json = JsonConvert.SerializeObject(getdata());
                return json;
              
        }

    }
}


Controller:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using dis.Models;
using Newtonsoft.Json;

namespace dis.Controllers
{
    [HandleError]
    public class HomeController : Controller
    {
        public ActionResult Index()
        {

            return View("index");
        }
        public ActionResult VerificationCode()
        {

            ValidateCode validateCode = new ValidateCode();
            byte[] bytes = validateCode.CreateImage();
            Session["checkCode"] = validateCode.RandomCode;
            return File(bytes, @"image/gif");
        }

        public ActionResult Login()
        {
            return View("login");
        }
        public ActionResult j2()
        { return View("json"); }


        public string jl()
        {
            Jilian j = new Jilian();
            string jsondata = j.jsontran();
            //return File(jsondata,@"string");
            return jsondata;
            
        }
    }
} json .net mvc  解析 --------------------编程问答-------------------- 需要用json2转换下格式,,,,我博客里面有json2的资料 http://blog.csdn.net/kllxyu/article/details/9930553 --------------------编程问答-------------------- 如果返回 contentType=application/json 的,直接就是javascript对象,都不用解析。

如果返回是json格式,但是contentType=text/html 的,那么用 eval(data) 可以转换。

另外,lz不要自己写XmlHttpRequest了啊。jQuery几乎是标准了啊,用 jQuery.ajax 嘛。 --------------------编程问答-------------------- 建议LZ使用jQuery实现AJAX,在ajax的参数里设置DataType为json,那么在回调函数里获得的参数就是JSON格式的 --------------------编程问答--------------------   解析问题已经解决了,可是 前台传递参数给后台,后台怎么接收不到我前台传递的参数,
前台代码:  

/****************************************************/部分代码:
function f4() {
.......//省略  下行发送参数...
          $.post("http://localhost:6696/Home/j3?"+proIDs,  function (data, textStatus) {
                    var db = data;

                    var obj = JSON.parse(data);

                    alert(xmlhttp.status);
                    alert(proIDs); //参数可以正常弹出
/************************************************************************************/

后台代码:

 public string getcity()
        {
            string proID0 = HttpContext.Current.Request.Params["proIDs"];//调试显示proID0为null
            //int proIDs = Convert.ToInt32(proID0)+1;//调试显示值为null
 
            string cmdstr = "select cityName from city where proID='"+proID0+"'";
            string json = JsonConvert.SerializeObject(getdata(cmdstr));
            return json;
        } 求解答。。。。。。

--------------------编程问答-------------------- 后台接收到的是乱码吧 ? --------------------编程问答-------------------- 后台调试的时候显示的是null,也就是没有接收到前台js发来的参数。是后台接收参数的代码有错还是?
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,