ASP.NET MVC 2.0 中 jQuery数据验证的同步总结

应该有很多人和我一样,一想起jQuery中的Ajax(不只是jQuery中),就想到了异步.

的确,Ajax的价值就在于它的异步上,这也是他存在的理由。但在真正的使用中,还要注意同异步使用的差异性和使用场合。

现在在做的一个教师管理系统有这个一个名称重复的验证。一开始就是盲目的异步验证(主要罪因在于对异步机制的生疏)。

javascript代码

<script type="text/javascript">
$(document).ready(function() {
        //验证名称是否为空
        $("#edit_submit").click(function() {
            var id = $("#edit_id").val();                                   //编号
            var name = $.trim($("#edit_title_name").val());   //职称名字
            var name_error = $("span.edit").eq(0);               //职称名字错误域

            if (name == "") {
                name_error.html("不能为空");
                return false;
            } else {
                if (UptNameExist(id, name)) {
                    name_error.html("已存在");
                    return false;
                }
                return true;
            }
        });

        //修改后的双师名称是否在数据库中存在
        function UptNameExist(id, name) {
            var exist = false;
            $.ajax({
                type: "GET",
                async: false,
                url: "/DoubleCompetency/UptNameIsExist",
                data: { id:id, name:name },
                success: function(data) {
                    if (data == "True") {
                        exist = true;
                    }
                }
            });
            return exist;
        }
    })
</script>

视图代码

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<table class="basic_lines">
               <caption>修改双师类别</caption>
               <tr>
                    <td style="width: 100px">职称名称</td>
                    <td style="width: 160px">
                        <%=Html.TextBox("edit_title_name")%>
                   </td>
                    <td style="width: 100px"><span class="edit error"></span></td>
               </tr>
               <tr>
                    <td>状态</td>
                    <td>
                        <%=Html.RadioButton("edit_status", "1", false) %>正常
                        <%=Html.RadioButton("edit_status", "0", false) %>禁止
                   </td>
                    <td><span class="edit error"></span></td>
               </tr>
               <tr>
                    <%=Html.Hidden("edit_id") %>
                    <%=Html.Hidden("page", ViewData["current_page"]) %>
                    <td colspan="3"><input type="submit" id="edit_submit" name="edit_submit" value="提交" /></td>
               </tr>
</table>

控制器代码

/// <summary>
/// 修改后的双师名称是否在数据库中存在(前台调用)
/// </summary>
/// <param name="id">编号</param>
/// <param name="name">职称名称</param>
/// <returns></returns>
public bool UptNameIsExist(int id, string name)
{
DoubleCompetency doubleCompetency
= new DoubleCompetency();
doubleCompetency.ID
= id;
doubleCompetency.Name
= name;
if (doubleCompetencyConcrete.UptNameIsExist(doubleCompetency))
{
return true;
}
return false;
}

posted on 2011-06-10 12:32  Allan GC  阅读(430)  评论(0编辑  收藏  举报

导航