On aspx page
<form id="form1" runat="server">
<table border="0" cellpadding="0" cellspacing="0">
    <tr>
        <td>enter code here
            Name:
        </td>
        <td>
            <asp:TextBox ID="txtName" runat="server" Text=""/>
        </td>
    </tr>
    <tr>
        <td>
            Age:
        </td>
        <td>
            <asp:TextBox ID="txtAge" runat="server" Text="" />
        </td>
    </tr>
    <tr>
        <td>
            <asp:Button ID="btnSubmit" Text="Submit" runat="server" />
        </td>
    </tr>
</table>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/json2/20130526/json2.min.js"></script>
<script type="text/javascript">
    $(function () {
        $("[id*=btnSubmit]").click(function () {
            var obj = {};
            obj.name = $.trim($("[id*=txtName]").val());
            obj.age = $.trim($("[id*=txtAge]").val());
            $.ajax({
                type: "POST",
                url: "FirstUpper.aspx/SendParameters",
                data: JSON.stringify(obj),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (r) {
                    alert(r.d);
                }
            });
            return false;
        });
    });
</script>
</form>
on cs page
    [System.Web.Services.WebMethod]
    public static string SendParameters(string name, int age)
    {
        if (!String.IsNullOrEmpty(name))
            name = name.First().ToString().ToUpper() + name.Substring(1);
        return string.Format("Name: {0}{2}Age: {1}", name, age, Environment.NewLine);
    }
}