【发布时间】:2014-07-02 23:09:11
【问题描述】:
我有一个使用 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":"Invalid web service call, missing value for parameter: \u0027user\u0027.","StackTrace":" at System.Web.Script.Services .WebServiceMethodData.CallMethod(对象目标,IDictionary`2 参数)\r\n 在 System.Web.Script.Services.WebServiceMethodData.CallMethodFromRawParams(对象目标,IDictionary'2 参数)\r\n 在 System.Web.Script.Services .RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary'2 rawParams)\r\n at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.InvalidOperationException" }
【问题讨论】:
-
尝试制作
CreateContstatic。您可能还应该在 global.asax 中捕获并记录应用程序错误以帮助您进行调试。 -
您确定生成的网址正确吗?使用一些客户端开发工具,例如 firebug 来确认
-
@AshleyJohn 是的,网址没问题,我检查过了...它是“/Code/WebService/EBusinessWS.asmx/CreareCont”,我的网络服务在两个文件夹中...没关系。 ..
-
@JasonP 如何捕获并记录错误?
-
尝试在您的 ajax 设置中命名您的输入参数。类似“数据:{user: JSON.stringify(model)}