繁体   English   中英

Ajax将数据发布到服务器端-错误500内部服务器错误

[英]Ajax post data to server side - Error 500 internal server error

我有一个与jquery一起获得的文本框列表,我试图通过模型将它们发送到服务器端。

我在服务器端(webmethod)上设置了一个断点,但不会成功...

救命?

这是页面中的代码:

function CreareCont() {
        var model = {};
        model.Nume = txtNume.val();
        model.Prenume = txtPrenume.val();
        model.CNPsauCUI = txtCNPsauCUI.val();
        model.Strada = txtStrada.val();
        model.Numar = txtNumar.val();
        model.Etaj = txtEmail.val();
        model.Apartament = txtApartament.val();
        model.Oras = txtOras.val();
        model.SectorSauJudet = txtSectorSauJudet.val();
        model.Telefon = txtTelefon.val();
        model.Email = txtEmail.val();
        model.Parola = txtParola.val();
        $.ajax({
            type: "POST", url: webservicePageUrl + "/CreareCont",
            data: JSON.stringify(model),
            contentType: "application/json; charset=utf-8", dataType: "json",
            success: OnSuccessCall1, error: OnErrorCall1
        });
    };
    function OnSuccessCall1(response) { alert(response.d); };
    function OnErrorCall1(response) { alert(response.status + " " + response.statusText); debugger; };

从控制台可以看到,模型发送似乎还可以,它的值是:

{"Nume":"asd","Prenume":"asd","CNPsauCUI":"asd","Strada":"asd","Numar":"asd","Etaj":"asd","Apartament":"asd","Oras":"asd","SectorSauJudet":"asd","Telefon":"asd","Email":"asd","Parola":"asdasd123"}

这是网络服务代码:

[WebMethod]
public void CreareCont(Inregistrare user)
{
    string hash = helper.GetSHA1HashData("123");

}

该模型是C#类:

    public class Inregistrare
    {
        string Nume { get; set; }
        string Prenume { get; set; }
        string CNPsauCUI { get; set; }
        string Strada { get; set; }
        string Numar { get; set; }
        string Etaj { get; set; }
        string Apartament { get; set; }
        string Oras { get; set; }
        string SectorSauJudet { get; set; }
        string Telefon { get; set; }
        string Email { get; set; }
        string Parola { get; set; }
    }
}

使用提琴手后,出现以下错误: {“ Message”:“无效的Web服务调用,缺少参数值:\\ u0027user \\ u0027。”,“ StackTrace”:“位于System.Web.Script.Services.WebServiceMethodData.CallMethod(Object目标,IDictionary`2参数)\\ r \\ n在System.Web.Script.Services.WebServiceMethodData.CallMethodFromRawParams(对象目标,IDictionary'2参数)\\ r \\ n在System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext上下文,WebServiceMethodData methodData,IDictionary'2 rawParams)\\ r \\ n位于System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext上下文,WebServiceMethodData methodData)“,” ExceptionType“:” System.InvalidOperationException“}

您的网络方法必须为静态方法,除非它在asmx中

public static void CreareCont(Inregistrare user)

和json数据需要使用与webmethod参数相同的名称

data: '{"user":'+ JSON.stringify(model)+ '}'

在类属性中包括Public ,例如public string Nume { get; set; } public string Nume { get; set; } public string Nume { get; set; } ,需要在类对象中反序列化json

试试这个代码

JS

function CreareCont() {
        var model = {};
        model.Nume = txtNume.val();
        model.Prenume = txtPrenume.val();
        model.CNPsauCUI = txtCNPsauCUI.val();
        model.Strada = txtStrada.val();
        model.Numar = txtNumar.val();
        model.Etaj = txtEmail.val();
        model.Apartament = txtApartament.val();
        model.Oras = txtOras.val();
        model.SectorSauJudet = txtSectorSauJudet.val();
        model.Telefon = txtTelefon.val();
        model.Email = txtEmail.val();
        model.Parola = txtParola.val();
        $.ajax({
            type: "POST", url: webservicePageUrl + "/CreareCont",
            data: '{"user":'+ JSON.stringify(model)+ '}',
            contentType: "application/json; charset=utf-8", dataType: "json",
            success: OnSuccessCall1, error: OnErrorCall1
        });
    };

CS

[WebMethod]
public static void CreareCont(Inregistrare user)
{
    string hash = helper.GetSHA1HashData("123");

}

public class Inregistrare
{
    public string Nume { get; set; }
    public string Prenume { get; set; }
    public string CNPsauCUI { get; set; }
    public string Strada { get; set; }
    public string Numar { get; set; }
    public string Etaj { get; set; }
    public string Apartament { get; set; }
    public string Oras { get; set; }
    public string SectorSauJudet { get; set; }
    public string Telefon { get; set; }
    public string Email { get; set; }
    public string Parola { get; set; }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM