如何使用Json发送数据并获取asp.net服务

时间:2017-09-11 06:55:49

标签: asp.net json ajax web-services jscript

我是php开发人员,最近切换到asp,我想将数据发送到Web服务并到达那里,但我无法提出解决方案。 在php中,如果您想访问数据以进行后端处理,我们只需使用 .Serialize(); 方法,

例如:

<form id="loginForm"> <input class="form-control" name="UserEmail" placeholder="Email" type="email" required=""/> </form>

在Jscript函数中我们将序列化表单,例如:

var data = $("#loginForm").serialize();

并且在进程方面我可以通过输入名称来调用它,但是在asp.net中我无法做同样的事情,我可能会遗漏某些东西或者asp.net根本不支持这样的方法吗?我不知道请程序员帮帮我。

4 个答案:

答案 0 :(得分:2)

您应该使用Id属性并使用stingify()方法而不是序列化。

<强> HTML

<input class="form-control" Id="UserEmail" placeholder="Email" type="email" required=""/>

<强> JS

function YesFunction() {


        var email= $("#UserEmail").val();

        var d= [];
        d.push(email);

        var jsndta = JSON.stringify({ d: d});
                    $.ajax({
            type: "POST",
            url: "wbservices/SearchSchoolInfoAndInventory.asmx/Searchschoolbesicinfo",
            data: jsnDta,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (r) {
                var rtnData = r.d; //all returned data...
                var respDta = [];
                $.map(rtnData, function (item, index) {
                    var j = [
                        item.status,
                        item.msg,
                    ];
                    respDta.push(j);
                });
                $.each(respDta, function (key, value) {
                    var status = value[0];
                    var msg = value[1];


                    if (status == true) {
                        table.html(msg);
                    } else {

                    }
                }); //1st out loop ends here...


            },
            error: function (jqXHR, textStatus, errorThrown) {
                //  $("#responseMovDetails").html(jqXHR + textStatus + errorThrown);
                alert("error while loading Purchases Head" + jqXHR + textStatus + errorThrown);

            }



        });

    }

现在创建一个类并创建两个公共变量,并通过在Web服务类中创建类对象来调用这两个变量。

    public class RequestResponse
    {
        public bool status { get; set; }
        public string msg { get; set; }
    }
[WebMethod]
        public List<RequestResponse>ActivatePBudget(List<string> d)
        {
            RequestResponse r = new RequestResponse();
            List<RequestResponse> list = new List<RequestResponse>();

            string Email= d[0].ToString();

//establish connection. I have established connection in separate class.
            DbCon dbcon = new DbCon();
            string constr = dbcon.dbconnection();
            SqlConnection con = new SqlConnection(constr);
            try
            {
                con.Open();
                string CheckEmail = "select *  from Table_Name where Email= @m";
                SqlCommand getcmd= new SqlCommand(CheckEmail,con);
                getcmd.Parameters.AddWithValue("@m", Email);
                SqlDataReader reader=getbhidcmd.ExecuteReader();

                if(reader.Read())
                {
                    r.status = true;
                    r.msg = "Valid User Or Redirect user to another page";
                    list.Add(r);
                reader.Close();
                }
                else 
                {

                reader.Close();
                    r.status = false;
                    r.msg = "Invalid Email";
                    list.Add(r);

                }

            }
            catch (Exception ex)
            {
                r.status = false;
                r.msg = "Invalid Email" + ex.ToString();
                list.Add(r);
            }
            finally
            {
                con.Close();
            }
            return list;
        }

答案 1 :(得分:0)

HTML + JS + WEB-SERVICE JS:

 <script type="text/javascript">
    function getProject() {
            var data = "";
            var strUser = "<%=nowUser%>";
            $.ajax({
                type: 'post',
                url: '<%=AppRoot%>main/BackWebservice.asmx/LoadProjects',
                async: true,
                dataType: 'json',
                data: { strAdmin: strUser },
                success: function (result) {
                    var json = eval(result); //数组 
                    var optionstring = "";
                    $.each(json, function (index, item) {
                        //循环获取数据    
                        var name = json[index].Name;
                        var idnumber = json[index].ID;
                        optionstring += "<option value=\"" + idnumber + "\" >" + name + "</option>";
                    });
                    $("#userProject").html("<option value=\"" + 0 + "\"'>所有项目</option> " + optionstring);
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    alert(XMLHttpRequest.status);
                    alert(XMLHttpRequest.readyState);
                    alert(textStatus);
                }
            });
        }
    </script>

WEB-SERVICE

    [WebMethod]
public void LoadProjects(string strAdmin)
{
    List<Project> mProjects = new List<Project>();
    string stuJsonString = "";
    bool bManager = false;
    using (SqlConnection connection1 = new SqlConnection(Cfg.SqlServer))
    {
        connection1.Open();
        string mstrsql1 = "SELECT * FROM ShuiUser where 账号='" + strAdmin + "'";
        using (SqlCommand CMD1 = new SqlCommand(mstrsql1, connection1))
        {
            SqlDataReader DR1 = CMD1.ExecuteReader();
            while (DR1.Read())
            {
                if (DR1["管理"].ToString() == "1")
                {
                    bManager = true;
                }
            }
            DR1.Close();
        }
        connection1.Close();
    }
    using (SqlConnection connection2 = new SqlConnection(Cfg.SqlServer))
    {
        connection2.Open();
        string mstrsql2 = "";
        if (bManager)
        {
            mstrsql2 = "select * from ShuiProject";
        }
        else
        {
            mstrsql2 = "select a.* from ShuiProject a,ShuiUser b where a.[编号]=b.[项目] AND b.[账号]='" + strAdmin + "' ";
        }
        using (SqlCommand CMD2 = new SqlCommand(mstrsql2, connection2))
        {
            SqlDataReader DR2 = CMD2.ExecuteReader();
            while (DR2.Read())
            {
                Project mProject = new Project();
                mProject.ID = Convert.ToInt16(DR2["编号"]);
                mProject.Name = DR2["名称"].ToString();
                mProjects.Add(mProject);
            }
            DR2.Close();
        }
        connection2.Close();
    }

    stuJsonString = JsonConvert.SerializeObject(mProjects);
    //主要是下面的两句 The most important two sentences
    Context.Response.Write(stuJsonString);
    Context.Response.End();
}

答案 2 :(得分:0)

ASPX:

<form runat=”server” id="loginForm"> 
<asp:Textbox runat=”server” cssClass="form-control" id="UserEmail" placeholder="Email" TextMode=”email” required=""/> 
</form>

关于Codebehind(.cs):

 using Newtonsoft.Json;
 var obj=new {
 Email= UserEmail.Text.Trim()
 };

var j=JsonConvert.SerializeObject(obj);

我假设您正在处理网络表单。

答案 3 :(得分:0)

你必须在asp中使用jsonp $就({     url:&#39;你的路径&#39;,     数据类型:&#39; jsonp&#39;,     数据:{....} });