Jquery can';t使用ajax和linq将数据保存到数据库
这是我的Jquery can';t使用ajax和linq将数据保存到数据库,jquery,asp.net,linq,Jquery,Asp.net,Linq,这是我的listview.aspx文件,具有AJAX功能和listview控制器。我无法保存此数据: $(function () { var firstname = $('#fname').val(); var lastname = $('#lanme').val(); var education = $('#education').val(); var email = $('#email').val(); $('#submit').click(funct
listview.aspx
文件,具有AJAX功能和listview控制器。我无法保存此数据:
$(function () {
var firstname = $('#fname').val();
var lastname = $('#lanme').val();
var education = $('#education').val();
var email = $('#email').val();
$('#submit').click(function () {
$.ajax({
url: 'listview.aspx/Insert_data',
data: "{ 'First' : '" + firstname + "' , 'Last' : '" + lastname + "' , 'education' : '" + education + "' , 'Email' : '" + email + "' }",
type: 'POST',
async: false,
success: function (response) {
$('#fname').val('');
$('#lanme').val('');
$('#education').val('');
$('#email').val('');
alert('saved..');
},
error: function () {
alert("Error");
}
})
})
})
对于以下列表控件:
<table>
<tr>
<td>FirstName:</td>
<td><input type="text" id="fname" /></td>
</tr>
<tr>
<td>Last:</td>
<td><input type="text" id="lname" /></td>
</tr>
<tr>
<td>Education:</td>
<td><input type="text" id="education" /></td>
</tr>
<tr>
<td>Email:</td>
<td><input type="text" id="email" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" id="submit" value="Submit" /></td>
</tr>
</table>
</div>
<div>
<asp:ListView ID="lv1" runat="server">
<LayoutTemplate>
<table id="tbl1">
<tr>
<th>ID</th>
<th>FirstName</th>
<th>LastName</th>
<th>Education</th>
<th>Email</th>
</tr>
<tbody>
<asp:PlaceHolder ID="itemPlaceHolder" runat="server"></asp:PlaceHolder>
</tbody>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td><%# Eval("Id") %></td>
<td><%# Eval("First") %></td>
<td><%# Eval("Last") %></td>
<td><%# Eval("education") %></td>
<td><%# Eval("Email") %></td>
</tr>
</ItemTemplate>
</asp:ListView>
</div>
当我提交表单以保存数据时,它会显示一个警报,说明数据是按照我在AJAX函数中编写的方式保存的,但实际上不是这样。您是否尝试过更改
插入数据
函数,使其具有与从AJAX调用传递的输入参数相同的输入参数
您的方法签名是:
public static bool Insert_data(string fname,string lname, string edu, string email)
但是您的Ajax调用正在通过:
data: "{ 'First' : '" + firstname + "' , 'Last' : '" + lastname + "' , 'education' : '" + education + "' , 'Email' : '" + email + "' }",
您没有阻止“提交”按钮操作。更改您的代码:
$('#submit').click(function(e) {
// Prevent page postback.
e.preventDefault();
// Ajax code here
});
最后,我更喜欢传递一个对象,而不是大量的参数,因为它允许容易维护的代码。您可以更改正在使用的字符串参数并替换为对象
可以在JavaScript中设置对象:
var mFormData = {
FirstName: firstname,
LastName: lastname,
Education: education,
Email: email
};
然后,您可以通过Ajax调用数据属性将其传入:
data: JSON.stringify(mFormData)
你的控制器代码中有吗?没有,它不是MVC结构。我说的是aspx页面中的ListView控制器,但它没有发生。ajax方法不起作用。页面正在发回。
data: JSON.stringify(mFormData)