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

时间:2015-10-27 04:24:10

标签: javascript c# jquery

如何使用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);
        }
    }
}();

2 个答案:

答案 0 :(得分:2)

更改用户组类

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(); });
    }
   }
 }();

答案 1 :(得分:0)

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

  

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