如何在Visual Studio(ASP.NET)中启用JSON支持?

时间:2016-09-08 21:05:41

标签: asp.net visual-studio

如何启用Visual Studio以识别和操作代码隐藏文件中的JSON数据? (换句话说,解决json does not exist in the current context错误)。我希望能够:

  • 从客户端转发的AJAX调用中检索JSON数据
  • 使用C#
  • 解释,更改或创建JSON对象
  • 将有效的JSON响应发送回客户端并使用Javascript
  • 进行阅读
  • 无论运行时环境如何,都可以执行上述所有操作(即,我无法始终确保在Visual Studio中安装第三方软件包)。

我见过很多答案,但大多数建议要么(1)安装json包,要么(2)使用using指令。我尝试了后者的许多变种而没有运气。

在Visual Studio中包含JSON支持的正确方法是什么? 如何正确检索(例如来自POST AJAX调用),操纵(例如更改)和发回(即响应客户端) )C#中的JSON数据?非常基本的原始例子会有所帮助!

1 个答案:

答案 0 :(得分:0)

ASP.Net Web表单WebMethod。您可以使用Ajax从客户端调用这些静态方法。

ASPX

<%@ Page Language="C#" AutoEventWireup="true" 
    CodeBehind="Default.aspx.cs" Inherits="DemoWebApplication.Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <button type="button" onclick="postData();">Post Data</button>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js">
        </script>
        <script type="text/javascript">
            function postData() {
                var user = { firstName: "John", lastName: "Doe" };
                $.ajax({
                    type: "POST",
                    url: '<%= ResolveUrl("~/default.aspx/postjson") %>',
                    data: "{user:" + JSON.stringify(user) + "}",
                    contentType: "application/json",
                    success: function (msg) {
                        console.log(msg.d);
                    }
                });
            }
        </script>
    </form>
</body>
</html>

代码背后

using System.Web.Script.Serialization;

namespace DemoWebApplication
{
    public partial class Default : System.Web.UI.Page
    {
        [System.Web.Services.WebMethod]
        public static string PostJson(User user)
        {
            user.FirstName += "Test";
            user.LastName += "Test";
            return new JavaScriptSerializer().Serialize(user);
        }
    }

    public class User
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
    }
}
  

在Visual Studio中包含JSON支持的正确方法是什么?

Visual Studio与发送和接收JSON无关。如果您想要一种正确的方法,您可能需要考虑使用ASP.Net Web API。