首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Ajax没有命中webmethod函数?

为什么Ajax没有命中webmethod函数?
EN

Stack Overflow用户
提问于 2018-08-19 18:38:33
回答 1查看 43关注 0票数 0

我在Asp.net网页表单中使用Jquery Ajax。但是Ajax调用没有命中我的web方法函数。我尝试了很多次堆栈溢出的解决方案。我还在webmethod中添加了断点,function.but ajax没有命中it.It,只显示错误警报。我已经尝试了五个多小时,但不是working.here,这是我的代码:

jquery Ajax代码:

代码语言:javascript
复制
 <script>
    $(document).ready(function () {
        document.getElementById("entryDate").value = moment().format('DD/MM/YYYY');
        var eTime = moment().format('HH:00');
        document.getElementById("entryTime").value = eTime;

        $("#saveButtonLabEntry").click(function () {
            alert("hi");

            var today = moment().format('YYYY/MM/DD');

            var eTime = moment().format('HH:00');

            var unitName = $('#unitName').val();

            var labEntryArray = [];
            var tbl = document.getElementById("myTable1");
            var rCount = tbl.rows.length;


            alert(rCount);
            try {
                for (var j = 1; j <= rCount - 1; j++) {
                    var sampleName = tbl.rows[j].cells[1].innerText;
                    var density15C = tbl.rows[j].cells[2].children[0].value;
                    var rvpPsi = tbl.rows[j].cells[3].children[0].value;
                    var colourAstm = tbl.rows[j].cells[4].children[0].value;
                    var fp0C = tbl.rows[j].cells[5].children[0].value;
                    var viscosity50C = tbl.rows[j].cells[6].children[0].value;
                    var viscosity100C = tbl.rows[j].cells[7].children[0].value;
                    var pp0C = tbl.rows[j].cells[8].children[0].value;
                    var ibp = tbl.rows[j].cells[9].children[0].value;
                    var astm5 = tbl.rows[j].cells[10].children[0].value;
                    var astm10 = tbl.rows[j].cells[11].children[0].value;
                    var astm50 = tbl.rows[j].cells[12].children[0].value;
                    var astm90 = tbl.rows[j].cells[13].children[0].value;
                    var astm95 = tbl.rows[j].cells[14].children[0].value;
                    var fbp = tbl.rows[j].cells[15].children[0].value;
                    var beforeOxid = tbl.rows[j].cells[16].children[0].value;
                    var afterOxid = tbl.rows[j].cells[17].children[0].value;
                    var report = tbl.rows[j].cells[18].children[0].value;
                    var fr5 = tbl.rows[j].cells[19].children[0].value;

                    //alert(fr5);
                    var obj = { unitname: unitName, SampleName: sampleName, Entrydate: today, EntryTime: eTime, Density15C: density15C, RVP_PSI: rvpPsi, colourASTM: colourAstm, FP: fp0C, Viscosity50: viscosity50C, Viscosity100: viscosity100C, pp: pp0C, ASTM_IBP: ibp, ASTM5: astm5, ASTM10: astm10, ASTM50: astm50, ASTM90: astm90, ASTM95: astm95, FBP: fbp, BSWB4Oxid: beforeOxid, BSWAfterOxid: afterOxid, Report: report, FR5xylene: fr5 };

                    labEntryArray.push(obj);
                }

            } catch (e) {
                alert("hello");
            }
            var pageUrl = '<%=ResolveUrl("LabEntryUI.aspx")%>';



            $.ajax(
            {
                //url: "LabEntryGateway.aspx/SaveLabData",
                url: pageUrl + '/SaveLabData',
                dataType: "json",
                type: "POST",
                contentType: "application/json; charset=utf-8",
                data: JSON.stringify(labEntryArray),
                success: function (da) {
                    //$("#msg").html(da.Message);
                    alert('success');
                },
                error: function (da) {
                    alert('hello Error');
                }

            });


        });
    });
</script>

LabEntryUI.aspx.cs代码:

代码语言:javascript
复制
    using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Script.Services;
using System.Web.Services;
using System.Web.UI;
using System.Web.UI.WebControls;
using ERL.Gateway;
using ERL.Models;

namespace ERL
{
    public partial class LabEntryUI : System.Web.UI.Page
    {


        protected void Page_Load(object sender, EventArgs e)
        {

        }

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
       public static void SaveLabData(List<LabEntry> labEntryArray)
        {
            string constr = ConfigurationManager.ConnectionStrings["ERLConnectionString"].ConnectionString;
            using (SqlConnection con = new SqlConnection(constr))
            {
                using (
                    SqlCommand Command =
                        new SqlCommand("Insert into LabReport Values(@unitName,@sampleName,@entryDate,@entryTime," +
                                       "@userId,@density15C,@rvpPsi,@colourAstm,@fp,@viscosity50," +
                                       "@viscosity100,@pp,@astmIvp,@astm5,@astm10,@astm50,@astm90,@astm95,@fbp,@bswb4Oxid," +
                                       "@bswAfterOxid,@report,@fr5Xylene)"))
                {
                    Command.Parameters.Clear();
                    Command.Parameters.Add("unitName", SqlDbType.NChar);
                    Command.Parameters.Add("sampleName", SqlDbType.VarChar);
                    Command.Parameters.Add("entryDate", SqlDbType.DateTime);
                    Command.Parameters.Add("entryTime", SqlDbType.NChar);
                    Command.Parameters.Add("userId", SqlDbType.NChar);

                    Command.Parameters.Add("density15C", SqlDbType.Decimal);
                    Command.Parameters.Add("rvpPsi", SqlDbType.Decimal);
                    Command.Parameters.Add("colourAstm", SqlDbType.VarChar);
                    Command.Parameters.Add("fp", SqlDbType.Decimal);
                    Command.Parameters.Add("viscosity50", SqlDbType.Decimal);

                    Command.Parameters.Add("viscosity100", SqlDbType.Decimal);
                    Command.Parameters.Add("pp", SqlDbType.Decimal);
                    Command.Parameters.Add("astmIvp", SqlDbType.Decimal);
                    Command.Parameters.Add("astm5", SqlDbType.Decimal);
                    Command.Parameters.Add("astm10", SqlDbType.Decimal);

                    Command.Parameters.Add("astm50", SqlDbType.Decimal);
                    Command.Parameters.Add("astm90", SqlDbType.VarChar);
                    Command.Parameters.Add("astm95", SqlDbType.VarChar);
                    Command.Parameters.Add("fbp", SqlDbType.Decimal);
                    Command.Parameters.Add("bswb4Oxid", SqlDbType.Decimal);

                    Command.Parameters.Add("bswAfterOxid", SqlDbType.Decimal);
                    Command.Parameters.Add("report", SqlDbType.VarChar);
                    Command.Parameters.Add("fr5Xylene", SqlDbType.Decimal);


                    foreach (var labEntry in labEntryArray)
                    {
                        Command.Parameters["unitName"].Value = labEntry.unitname;
                        Command.Parameters["sampleName"].Value = labEntry.SampleName;
                        Command.Parameters["entryDate"].Value = labEntry.Entrydate;
                        Command.Parameters["entryTime"].Value = labEntry.EntryTime;
                        Command.Parameters["userId"].Value = "";
                        Command.Parameters["density15C"].Value = labEntry.Density15C;

                        Command.Parameters["rvpPsi"].Value = labEntry.RVP_PSI;
                        Command.Parameters["colourAstm"].Value = labEntry.colourASTM;
                        Command.Parameters["fp"].Value = labEntry.FP;
                        Command.Parameters["viscosity50"].Value = labEntry.Viscosity50;
                        Command.Parameters["viscosity100"].Value = labEntry.Viscosity100;
                        Command.Parameters["pp"].Value = labEntry.pp;
                        Command.Parameters["astmIvp"].Value = labEntry.ASTM_IBP;
                        Command.Parameters["astm5"].Value = labEntry.ASTM5;
                        Command.Parameters["astm10"].Value = labEntry.ASTM10;
                        Command.Parameters["astm50"].Value = labEntry.ASTM50;
                        Command.Parameters["astm90"].Value = labEntry.ASTM90;
                        Command.Parameters["astm95"].Value = labEntry.ASTM95;
                        Command.Parameters["fbp"].Value = labEntry.FBP;
                        Command.Parameters["bswb4Oxid"].Value = labEntry.BSWB4Oxid;
                        Command.Parameters["bswAfterOxid"].Value = labEntry.BSWAfterOxid;
                        Command.Parameters["report"].Value = labEntry.Report;
                        Command.Parameters["fr5Xylene"].Value = labEntry.FR5xylene;

                        Command.Connection = con;
                        con.Open();

                        Command.ExecuteNonQuery();

                        con.Close();
                    }
                }
            }


        }
    }
}

LabEntry类代码:

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace ERL.Models
{
    public class LabEntry
    {
        public int sl { get; set; }
        public string unitname { get; set; }
        public string SampleName { get; set; }
        public DateTime Entrydate { get; set; }
        public string EntryTime { get; set; }
        public string userid { get; set; }
        public decimal Density15C { get; set; }
        public decimal RVP_PSI { get; set; }
        public string colourASTM { get; set; }
        public decimal FP { get; set; }
        public decimal Viscosity50 { get; set; }
        public decimal Viscosity100 { get; set; }
        public decimal pp { get; set; }
        public decimal ASTM_IBP { get; set; }
        public decimal ASTM5 { get; set; }
        public decimal ASTM10 { get; set; }
        public decimal ASTM50 { get; set; }
        public string ASTM90 { get; set; }
        public string ASTM95 { get; set; }
        public decimal FBP { get; set; }
        public decimal BSWB4Oxid { get; set; }
        public decimal BSWAfterOxid { get; set; }
        public string Report { get; set; }
        public decimal FR5xylene { get; set; }
        public int slWater { get; set; }
        public string SampleNameWater { get; set; }
        public decimal ph { get; set; }
        public decimal COND { get; set; }
        public decimal TDS { get; set; }
        public decimal TA { get; set; }
        public decimal TAC { get; set; }
        public decimal NACL { get; set; }
        public decimal H2S { get; set; }
        public decimal NH3 { get; set; }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2018-08-19 23:36:44

尝试更新jquery代码以发布数据,如下所示。在这里,json表示一个对象,该对象具有一个包含LabEntry对象数组的属性labEntryArray

代码语言:javascript
复制
data: JSON.stringify({labEntryArray:labEntryArray})

而不是

代码语言:javascript
复制
data: JSON.stringify(labEntryArray)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51916802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档