【问题标题】:unable to render Json string on client side无法在客户端呈现 Json 字符串
【发布时间】:2012-10-17 20:29:26
【问题描述】:

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 函数是否正在执行它应该执行的操作..此代码用于用户控制而不是在 aspx 页面上,这有关系吗?在调试时,我可以看到 json 字符串中的序列化数据。只是它没有在客户端渲染..从早上开始就开始工作了,现在我需要一些帮助..任何示例或任何文档也很有用..

【问题讨论】:

  • 使用 console.log() 而不是 alert(),您将能够在调试器控制台中看到整个 JSON 对象。 alert() 只能显示字符串。
  • @Blazemonger 不工作......我什至在控制台中都看不到它
  • 这表明/ProgramListSimple.aspx/BindData 正在返回一个空文件,然后。success: function (msg) { console.log(msg); } 应该向您显示该脚本通常会显示的任何内容。
  • @Blazemonger 有什么方法可以调试它?
  • 问题是 PageMethod 声明,它不是静态的,也不是公开的。为了调试它,我强烈建议您安装Fiddler

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


【解决方案1】:

您必须使用d 属性

alert(msg.d);

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

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

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

【讨论】:

  • console.log("%o", msg); ReferenceError: msg is not defined 我在控制台收到此错误消息
  • 您是否将alert("msg"); 的那一行而不是 放在success 函数的正下方??
  • @Scorpio,您是否将console.log 添加到内部 success 处理程序?
  • 是的,我成功了:function (msg) { console.log("%o", msg); }
  • 我的绑定函数错了吗???我的意思是它需要是静态方法还是什么??
【解决方案2】:

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

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

我只是添加了修复的一小部分,这对于它的工作非常重要,除此之外还有很多东西被添加以使 ascx 页面继承 apsx 页面的属性....但我认为这主要与我的代码有关...所以我希望这对将来的某人有所帮助...感谢所有尝试做出贡献的人..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-22
    • 1970-01-01
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    • 2014-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多