c# - 如何使用 ASP.NET 和 jQuery 返回 JSON

标签 c# javascript jquery asp.net ajax

我不知道如何用我的代码返回 JSON 数据。

JS

$(function () {
$.ajax({
        type: "POST",
        url: "Default.aspx/GetProducts",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            // How to return data here like a table???  
            $("#Second").text(msg.d);
            //alert(msg.d);
        }
    }); 
});

Default.aspx.cs 的 C#

[WebMethod]
public static string GetProducts()
{
   var products  = context.GetProducts().ToList();   
   return What do I have to return ????
}

提前致谢!

最佳答案

你不远;你需要做这样的事情:

[WebMethod]
public static string GetProducts()
{
  // instantiate a serializer
  JavaScriptSerializer TheSerializer = new JavaScriptSerializer();

  //optional: you can create your own custom converter
  TheSerializer.RegisterConverters(new JavaScriptConverter[] {new MyCustomJson()});

  var products = context.GetProducts().ToList();   

  var TheJson = TheSerializer.Serialize(products);

  return TheJson;
}

您可以进一步减少这段代码,但为了清楚起见,我保留了它。事实上,你甚至可以这样写:

return context.GetProducts().ToList();

这将返回一个 json 字符串。我更喜欢更明确,因为我使用自定义转换器。还有 Json.net,但框架的 JavaScriptSerializer 开箱即用。

关于c# - 如何使用 ASP.NET 和 jQuery 返回 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18244696/

相关文章:

c# - 创建下拉列表asp.net核心

c# - 如何验证电话号码字段以仅接受数字和最多 12 位数字?

c# - 避免在主窗体顶部使用全局变量的良好设计模式是什么?

javascript - 正则表达式模式抛出词法分析器错误 AngularJS

javascript - contextIsolation 的默认值已弃用,并将在 Electron 的 future 版本中从 false 更改为 true

c# - net core 2.2 到 3.0 身份验证迁移 AddOpenIdConnect

javascript - 注册一个事件以在 javascript 中更改 html 输入值

jquery - 在表单提交时将 Javascript 数组添加到 POST 变量

javascript - 如何使 Gridster 添加的小部件可调整大小?

jquery - PreventDefault 不适用于 <div> 内的 <a>