如何在asp上使用ajax/jquery将dto数据发布到Web服务
本文关键字:数据 dto 服务 Web jquery asp ajax | 更新日期: 2023-09-27 18:37:09
祝你新年快乐。
我正在尝试构建一个 Jquery 对话框模式表单,以便在 asp.net 页面上为管理控制台创建新用户。目标是将表单数据发送到与 DTO 和存储过程相关的 Web 服务。我不明白为什么当我尝试将表单发布到我的 Web 服务时出现内部服务器错误。我的网络访问被强烈过滤,所以搜索起来并不容易(在堆栈上我没有任何 css)。
你能给一些帮助来解决这个问题吗?
感谢您的任何帮助
网络服务 :
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.Services;
[WebMethod]
public static string InsertData(Users users)
{
SqlConnection connect = new SqlConnection();
connect.ConnectionString = ConfigurationManager.ConnectionStrings["Database"].ConnectionString;
try
{
SqlCommand cmd = new SqlCommand();
connect.Open();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "InsertUser";
cmd.Parameters.AddWithValue("@login", users.login);
cmd.Parameters.AddWithValue("@firstname", users.fname);
cmd.Parameters.AddWithValue("@lastname", users.lname);
cmd.Parameters.AddWithValue("@password", users.password);
cmd.Connection = connect;
cmd.ExecuteNonQuery();
connect.Close();
return "succes";
}
catch (Exception ex)
{
return "error";
}
}
}
aspx.page
$(document).ready(function() {
$('#btnsubmit').click(function() {
var myData = "{'login':'"+$("[id$='logintxt']").val() +"' , 'fname':'"+$("[id$='fnametxt']").val() +"' , 'lname':'"+$("[id$='lnametxt']").val() +"' , 'password':'"+$("[id$='passwordtxt']").val() +"')";
SendNewUser(myData);
function SendNewUser(myData) {
$.ajax({
type: "POST",
url: "Webservice.asmx/InsertData",
data: JSON.stringify({ "users": [myData] }),
contentType: 'application/json;charset=utf-8',
dataType: 'json',
succes: function (result) {
alert("Record saved successfully !");
},
error: function (XMLHttRequest, textStatus, errorThrown) {
alert("Error function : " + XMLHttRequest.toString() + "'n'Status : " + textStatus + "'n'Error : " + errorThrown);
}
});
}
});
});
和 .asmx
<%@ WebService Language="C#" CodeBehind="~/App_Code/WebService.cs" Class="WebService" %>
用户类
public class Users
{
public string login {get;set;}
public string fname {get;set;}
public string lname {get;set;}
public string password { get; set; }
}
在
下面调整了几行代码。看看这是否有帮助。
$(document).ready(function() {
$('#btnsubmit').click(function() {
/*Changed below line*/
var myData = "[{'login':'"+$("[id$='logintxt']").val() +"' , 'fname':'"+$("[id$='fnametxt']").val() +"' , 'lname':'"+$("[id$='lnametxt']").val() +"' , 'password':'"+$("[id$='passwordtxt']").val() +"'}]";
SendNewUser(myData);
function SendNewUser(myData) {
$.ajax({
type: "POST",
url: "Webservice.asmx/InsertData",
data: JSON.stringify({ "'users': "+ myData }), /*Changed this line*/
contentType: 'application/json;charset=utf-8',
dataType: 'json',
succes: function (result) {
alert("Record saved successfully !");
},
error: function (XMLHttRequest, textStatus, errorThrown) {
alert("Error function : " + XMLHttRequest.toString() + "'n'Status : " + textStatus + "'n'Error : " + errorThrown);
}
});
}
});
});