C# 在ASP.NET中使用jQuery序列化

C# 在ASP.NET中使用jQuery序列化,c#,jquery,asp.net,serialization,C#,Jquery,Asp.net,Serialization,ASP.NET中API的用途是什么? 我们如何使用它? 是否可以将序列化对象转换为.NET强类型对象? 或者将序列化对象映射到.NET等效对象? 例如,“成员”表中有两个字段。 姓名,年龄。 所以我们在成员实体中有这些属性 public string Name { get; set; } public string Age { get; set; } 我们在表示层中有以下代码: <asp:TextBox ID="txtName" runat="server">

ASP.NET中API的用途是什么? 我们如何使用它? 是否可以将序列化对象转换为.NET强类型对象? 或者将序列化对象映射到.NET等效对象? 例如,“成员”表中有两个字段。 姓名,年龄。 所以我们在成员实体中有这些属性

    public string Name { get; set; }
public string Age { get; set; }
我们在表示层中有以下代码:

       <asp:TextBox ID="txtName" runat="server"></asp:TextBox>
        <asp:TextBox ID="txtAge" runat="server"></asp:TextBox>
        <asp:Button ID="btnSave" runat="server" Text="Button" />
序列化对象如下所示:

这是字符串还是JSON对象?我想是绳子。 现在,这种序列化输出对我们有什么好处? 我知道我们能够使用jQueryAjax将此输出传递到服务器。但是我们如何在服务器端使用它呢


正如文档所解释的,该方法被传递一个表单DOM元素,并将其转换为URL编码的键/值对字符串,您可以将其传递给服务器。但是,如果您想在ASP.NET中处理强类型对象,可以查看以下内容。例如,假设已定义以下类型:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
然后,您可以有一个页面方法:

public partial class _Default : Page 
{
    [WebMethod]
    public static string Process(Person person)
    {
         // TODO: do some processing
         return DateTime.Now.ToString();
    }

    ...
}
要使用jQuery和JSON请求调用此方法:

$.ajax({
    type: 'POST',
    url: 'Default.aspx/Process',
    data: JSON.stringify({
        name: 'foo', // you could fetch those values dynamically
        age: 25
    }),
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    success: function(msg) {
        // msg.d will contain the object returned from the server
        // in our example it's a simple string but you could use any
        // complex type you like (well almost any, it must be JSON serializable)
        alert(msg.d);
    }
});

如果我的问题不清楚或需要更多信息,请通知我。谢谢。它是如此有用。您评论了“//您可以动态获取这些值”,请您详细描述一下好吗?@shaahin,我的意思是您可以将这些参数绑定到表单中的输入字段。例如:
name:$('.name').val()
。在本例中,我使用类选择器作为ASP.NET管理输入元素的名称和ID。
public partial class _Default : Page 
{
    [WebMethod]
    public static string Process(Person person)
    {
         // TODO: do some processing
         return DateTime.Now.ToString();
    }

    ...
}
$.ajax({
    type: 'POST',
    url: 'Default.aspx/Process',
    data: JSON.stringify({
        name: 'foo', // you could fetch those values dynamically
        age: 25
    }),
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    success: function(msg) {
        // msg.d will contain the object returned from the server
        // in our example it's a simple string but you could use any
        // complex type you like (well almost any, it must be JSON serializable)
        alert(msg.d);
    }
});