2016-09-07 183 views
0

我使用的三层体系结构,并试图使用jquery AJAX将数据存储到数据库中,但我没有得到在成功的函数的响应将数据插入SQL数据库使用jQuery AJAX在asp.net C#

这里是我的代码

portalDAL.cs

public DataTable InsertFeedBack(String Name, String Email, string Category, string Message) 
    { 
    SqlParameter[] parms = new SqlParameter[]{ 


    new SqlParameter("@Name",Name), 
    new SqlParameter("@Email",Email), 
    new SqlParameter("@Category",Category), 
    new SqlParameter("@Message",Message) 

    }; 
    return Helper.ExecuteParamerizedSelectCommand("insert into feedback(name,email,category,message) values(@Name,@Email,@Category,@Message)", CommandType.Text, parms); 
    } 

portalBAL.cs

public DataTable InsertFeedBack(String Name, String Email, string Category, string Message) 
    { 
    return portalDAL.InsertFeedBack(Name, Email, Category, Message); 

    } 

portal.asmx.cs

[WebMethod] 
    public String InsertFeedBack(String Name, String Email, string Category, string Message) 
    { 
    DataTable dt = detailsBAL.InsertFeedBack(Name, Email, Category, Message); 
    return JsonConvert.SerializeObject(dt); 
    } 

我的Jquery函数。

$(document).ready(function() { 
    $('#submit').click(function() { 

    var name = $('#name').val(); 
    var email = $('#email').val(); 
    var category = $('#cate').val(); 
    var msg = $('#msg').val(); 

    insertFeedback(name,email,category,msg); 
    }); 



function insertFeedback(name,email,cat,msg) 
    { 
    $.ajax({ 
    type: "POST", 
    url: "portal.asmx/InsertFeedBack", 
    data: "{'Name':'" + name + "','Email':'" + email + "','Category':'" + cat + "','Message':'" + msg + "'}", 

    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function (data) { 
    alert("hi"); 
    var obj = data.d; 
    if (obj == 'true') { 
    $('#name').val(''); 
    $('#email').val(''); 
    $('#cate').val(''); 
    $('#msg').val(''); 
    $('#lblmsg1').html("Details Submitted Successfully"); 
    window.location.reload(); 
    } 
    }, 
    error: function (result) { 
    alert("Error"); 
    } 
    }); 

    } 
    }); 

我收到错误提示消息控件没有进入成功的功能它没有显示任何错误的浏览器

+1

你检查过萤火虫控制台什么错误来自服务器?如果是的话,你可以发布错误消息或错误文本的屏幕截图吗? – iSensical

+0

它没有在控制台上显示任何错误..在获得错误消息警报后,将能够在控制台上看到此错误“未捕获的异常无法转换为字符串” – user2882173

+0

存在一些服务器端错误。把一个调试点放在你的web方法上,并检查它出现这个错误的地方。 – iSensical

回答

0

尝试使用这个Ajax代码格式。

$.ajax({ 
    type: "POST", 
    dataType: "json", 
    contentType: "application/json; charset=utf-8", 
    data: "{'Name':'" + name + "','Email':'" + email + "','Category':'" + cat + "','Message':'" + msg + "'}", 
    url: "portal.asmx/InsertFeedBack", 
    success: function (data) { 
     console.log(data); 
    }, 
    error: function (error) { 
     console.log(error); 
    } 
}); 
+0

谢谢将用这种格式检查 – user2882173

1

尝试使用此代码

$('#submit').click(function() { 
    insertFeedback(); 
}); 

function insertFeedback() 
{ 
var model = new Object(); 
    model.name = $('#name').val(); 
    model.email = $('#email').val(); 
    model.category = $('#cate').val(); 
    model.msg = $('#msg').val(); 

$.ajax({ 
type: "POST", 
url: "portal.asmx/InsertFeedBack", 
data: model, 
dataType: "json", 
success: function (data) { 
    alert("hi"); 
    // your code 
    }, 
error: function (result) { 
    alert("Error"); 
} 
} 

创建一个类有四个属性

public class YourClass 
{ 
public string name { get; set; } 
public string email { get; set; } 
public string category { get; set; } 
public string message { get; set; } 
} 

改变你的方法参数类对象。您可以从一个对象接收来自ajax调用的参数数量。

[WebMethod] 
public String InsertFeedBack(YourClass model) 
{ 
DataTable dt = detailsBAL.InsertFeedBack(model.name, model.email, model.category, model.message); 
return JsonConvert.SerializeObject(dt); 
} 
+1

谢谢你会通过它 – user2882173

相关问题