【问题标题】:Boolean response from c# web method doesn't work来自 c# web 方法的布尔响应不起作用
【发布时间】:2014-02-13 17:05:34
【问题描述】:

这是我第一次尝试 ajax! 我在互联网上找不到可以学习并应用于我的项目的好帖子。

让我直接给你看代码!

    [WebMethod]
    protected bool CheckUsername(string username)
    {
        var check = (from c in dc.dml_np_Users
                     where c.Username.Equals(username)
                     select c).Count();
        if (check > 0)
        {
            return false; //return false if username exist in database
        }
        else
        {
            return true; //true if it doesn't exist, i.e available
        }
    }

jquery 的标记如下:

<script type="text/javascript">
                            $('#txtUsername').blur(function () {
                                $(function () {
                                    $.ajax({
                                        type: "POST",
                                        url: "Login.aspx.cs/CheckUsername",
                                        data: JSON.stringify({ username: $('#txtUsername').val() }),
                                        contentType: "application/json; charset=utf-8",
                                        dataType: "json",
                                        success: function (data) {
                                            if (data) {
                                                toastr.success('username available');
                                            }
                                            else {
                                                toastr.error('Username already exist');
                                                $('#txtUsername').focus();
                                            }
                                        },
                                        error: function (data) {

                                        }
                                    });
                                });
                            });
                        </script>
                        <asp:TextBox ID="txtUsername" CssClass="form-control" runat="server" placeholder="Username"
                            AutoCompleteType="DisplayName" ValidationGroup="Signup"></asp:TextBox>

现在 jquery 应该包含如下内容: if(var available is true) 成功 toastr 应该显示 else 错误 toastr 应该显示!我第一次使用烤面包机!请更正我的代码!!请原谅我一个问题问的太多了!!

上面的代码总是显示错误信息!!

【问题讨论】:

  • 我可能遗漏了一些东西,但是您在哪里通过 ajax 请求中的 username
  • @Wahtever 我更新了代码!!现在看看!!
  • 问题解决了!最后!!感谢开发者工具(Chrome)_
  • 为什么这个问题被否决了?

标签: jquery asp.net ajax webmethod toastr


【解决方案1】:

在我看来,将 url: "Login.aspx.cs/CheckUsername", 更改为 url: "Login.aspx/CheckUsername",

【讨论】:

    【解决方案2】:

    只做验证?

                            <script type="text/javascript">
                         $(document).ready(function(){
                            $('#txtUsername').blur(function () {
                                    $.ajax({
                                        type: "POST",
                                        url: "Login.aspx.cs/CheckUsername",
                                        data: JSON.stringify({ username: $('#txtUsername').val() }),
                                        contentType: "application/json; charset=utf-8",
                                        dataType: "json",
                                        success: function (data) {
                                            if (data) {
                                                toastr.success('username available');
                                            }
                                            else {
                                                toastr.error('Username already exist');
                                                $('#txtUsername').focus();
                                            }
                                        },
                                        error: function (data) {
    
                                        }
                                    });
                            });
                     });
                        </script>
                        <asp:TextBox ID="txtUsername" CssClass="form-control" runat="server" placeholder="Username"
                            AutoCompleteType="DisplayName" ValidationGroup="Signup"></asp:TextBox>
    

    【讨论】:

    • 总是显示错误信息!!无论我在文本框中输入什么!如果我添加一个不在数据库中的值,它仍然会显示错误消息!我确定我的 ajax 调用有问题! :(
    • 缺少参数“data”。 url: "Login.aspx.cs/CheckUsername",data="username=name_current_user", ...
    • 什么是用户名 = name_current_user?我的意思是每一个是什么意思?
    • 用户名是您方法的参数,name_current_user 是文本框“txtUsername”的值,即将到达服务器的值
    • 但数据将是一个布尔值,因为我正在调用一个 c# 函数,该函数使用 webmethod 返回一个布尔值?
    猜你喜欢
    • 1970-01-01
    • 2015-07-31
    • 2017-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    相关资源
    最近更新 更多