[英]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.