无法在客户端呈现Json字符串

时间:2012-10-17 20:29:27

标签: c# asp.net json jquery json.net

ascx.cs

protected string BindData()
   {
    List<Product> products = product.GetRepeaterData(prod);
    string json = JsonConvert.SerializeObject(products);
     return json;
   } 

ASCX

 <script type="text/javascript" language="javascript">
function doSomething() {

    $.ajax({
        type: "POST",
        url: "/ProgramListSimple.aspx/BindData",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            alert(msg);
        }
    });
 };

我无法看到任何警报..我不知道ajax功能是否正在做它想做的事情。这个代码是用于用户控制&amp;不在aspx页面上那件事吗?在调试时,我能够在json字符串中看到序列化数据。它只是它不在客户端渲染....从早上开始工作我现在需要一些帮助..任何示例或任何文档也可以是有用的..

2 个答案:

答案 0 :(得分:1)

您必须使用d属性

alert(msg.d);

如果您使用Chrome或Firefox进行调试,请使用以下内容检查JavaScript对象:

console.log("%o", msg);

在Chrome中按 Ctrl + Shift + J 以显示开发者控制台

答案 1 :(得分:1)

我创建了一个新的aspx页面。将所有逻辑背后的代码从ascx.cs转移到aspx.cs。刚从我的ascx页面使用ajax回调

调用了aspx页面的url
        type: "GET",
        url:'<%=VirtualPathUtility.ToAbsolute("~/ProgramListSimpledetail.aspx") %>',
        data: dataObject,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) 

我刚刚添加了一小部分修复,这对于此工作非常重要,除此之外,为了使ascx页面从apsx页面继承属性,添加了大量内容....但我认为这主要与我的代码有关...所以我希望这有助于将来...感谢所有那些试图贡献的人..