使用java脚本和JQuery显示消息,而不是抛出异常

本文关键字:抛出异常 消息 显示 java 脚本 JQuery 使用 | 更新日期: 2023-09-27 18:19:33

如何使用Javascript和JQuery显示消息(通知用户组是否成功添加),而不是抛出错误。实际上,这个代码检查数据库中是否已经存在组名。

控制器:

[HttpPost]
    public int CreateGroup(UserGroup group)
    { 
        return bc.Create(group, user.id);
    }

用户组类别:

    UserGroupDalc Dalc = new UserGroupDalc();
    public int Create(UserGroup group, int creatorId)
    {
     if(ByName(group.name) != null) throw new ArgumentException(string.Format("Group name: {0} is already exist.", group.name));
     return Dalc.CreateGroup(group, creatorId);
    }

用户组dalc类:

public int CreateGroup(UserGroup group, int creatorId) {
            connection();
             com = new SqlCommand("spp_adm_user_group_ins", conn);
            com.CommandType = CommandType.StoredProcedure;
            com.Parameters.AddWithValue("@name", group.name);
            com.Parameters.AddWithValue("@userid", group.creator_id);
            conn.Open();
           int i = com.ExecuteNonQuery();
           if (i >= 1)
           {
               return 1;
           }
           else
           {
               return 0;
           }

此js用于发布数据:

            save: function () {
            var jForm = $("#form1");
            Metronic.blockUI();
            GroupAPI.create(jForm.serialize(),
                function (data) {
                    console.log(data);
                },
                function (error) {
                    console.log(error);
                },
                function () { Metronic.unblockUI(); });
        }
    }
}();
var GroupAPI = function () {
    var url_create = "api/usergroup/createGroup";
    var url_list = "api/usergroup/list";
    return {
        create: function (item, done, fail, always) {
            var jqxhr = $.post(url_create, item);
            jqXhrHandler(jqxhr, done, fail, always);
        }
    }
}();

使用java脚本和JQuery显示消息,而不是抛出异常

更改用户组类

UserGroupDalc Dalc = new UserGroupDalc();
public int Create(UserGroup group, int creatorId)
{
 if(ByName(group.name) != null){
 return 1;
 }
 return Dalc.CreateGroup(group, creatorId);
}

js

save: function () {
        var jForm = $("#form1");
        Metronic.blockUI();
        GroupAPI.create(jForm.serialize(),
            function (data) {
                //console.log(data);
           if (data == 0)
            {
               alert('added');
            }else if(data == 1){
               alert('already exist');
            }
            },
            function (error) {
                console.log(error);
            },
            function () { Metronic.unblockUI(); });
    }
   }
 }();

最好是响应422状态代码,在这种情况下表示验证失败,服务器无法处理请求,您也可以将用户可读的消息放在响应体中

422(不可处理实体)状态码意味着服务器了解请求实体的内容类型(因此415(不支持的媒体类型)状态码是不合适的),并且请求实体的语法是正确的(因此400(坏请求)状态码不合适),但无法处理包含的指令。例如,如果XML请求主体包含格式良好(即语法正确)但语义错误的XML指令,则可能出现这种错误情况。