Skip to main content
 首页 » 编程设计

c#之使用 Ajax 和 Linq 更新数据库

2024年08月12日47wayfarer

我一直在尝试使用 Ajax 和 Linq 进行更新,但是 Ajax 调用永远不会到达后面代码的 web 方法。我已经更改了用户类以匹配数据库并使用户对象具有相同的名称,但仍然无法访问后面的代码。我想知道这是否是首选方式?

首页:

<div class="row"> 
    <asp:TextBox ID="txt_name" runat="server" ClientIDMode="Static"/> 
</div> 
<div class="row"> 
     <asp:TextBox ID="txt_pass" runat="server" ClientIDMode="Static"/> 
</div> 
<div class="row"> 
     <asp:DropDownList ID="ddl_item" runat="server" ClientIDMode="Static"> 
            <asp:ListItem Text="item 1" Value="Item1" Selected="True"/> 
            <asp:ListItem Text="item 2" Value="Item2" /> 
            <asp:ListItem Text="item 3" Value="Item3" /> 
           </asp:DropDownList> 
</div> 
<div class="row"> 
    <asp:Button runat="server" ID="btn_submit" ClientIDMode="Static" Text="GO"/> 
</div> 

用户上传.js

$(function() { 
$('#btn_submit').on('click', function() { 
    var user = {}; 
    user.name = $('#txt_name').val(); 
    user.Pass = $('#txt_pass').val(); 
    user.Item = $('#ddl_item').val(); 
    $.ajax({ 
        type: "POST", 
        url: "~/uploadUserAjax/SaveUser", 
        data: '{user: ' + JSON.stringify(user) + '}', 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: function(response) { 
            alert("user has been added"); 
        } 
    }); 
    return false; 
}); 
}); 

上传用户Ajax.aspx.cs

[WebMethod] 
    [ScriptMethod] 
    public static void SaveUser(WebformTest.Models.User user) 
    { 
        using (var db = new dbDataContext()) 
        { 
            var insert = new User 
            { 
                name = user.name, 
                pass = user.pass, 
                Item = user.Item 
            }; 
            db.Users.InsertOnSubmit(insert); 
            db.SubmitChanges(); 
        } 
    }     

用户类文件:

 public class User 
{ 
    public string name { get; set; } 
    public string pass { get; set; } 
    public string Item { get; set; } 
} 

我的数据库文件名与我的用户类文件相同。

我已经更改了几次,在进行了大量谷歌搜索后,它说要让你的类文件名与你的 js 对象文件名相同,我在传递我的 setter 时使用了正确的类文件以获得值进入数据库。想知道我如何检查它是否转到后面代码中的 web 方法。我引用了所有正确的 using 语句。

请您参考如下方法:

您的问题很可能是由于:

url: "~/uploadUserAjax/SaveUser" 

jQuery不知道 ~ , 只有 ASP.NET

您可以使用浏览器附带的 developer tools 轻松检测到此问题。 .您可以检查网络和/或控制台选项卡以查找传输和/或 JS 错误。这些开发人员工具在所有现代浏览器(Chrome、FF、IE8+)中都可用,您可以按 F12 打开它们。 .

此外,您应该使用 Visual Studio 调试 ASP.NET 网站本身。的集成 debugging工具。这样你就可以测试 WebMethod已输入。

在jQuery你正在使用 $('#btn_submit')但 asp.net 为该按钮生成另一个 ID。考虑用普通的 HTML 按钮替换按钮。或者只使用 $('#<%=btn_submit.ClientID %>') .