ASP.NET MVC 2中的数据验证_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > ASP.NET MVC 2中的数据验证

ASP.NET MVC 2中的数据验证

 2013/8/26 19:00:07  蒋叶湖  博客园  我要评论(0)
  • 摘要:对照scottgu的博客,我试用了一下这个新增的数据验证功能,总的来说,还是比较方便的。我简单地总结步骤如下1.添加引用2.修改业务实体类,在需要进行验证的Property上面添加一些特殊的AttributeusingSystem.ComponentModel.DataAnnotations;namespaceWeb.Models{publicclassGalleryListItem{[Required(ErrorMessage="标题是必须的")]publicstringTitle{get
  • 标签:.net ASP.NET MVC net 数据

对照scottgu的博客,我试用了一下这个新增的数据验证功能,总的来说,还是比较方便的。我简单地总结步骤如下

1. 添加引用

image

2. 修改业务实体类,在需要进行验证的Property上面添加一些特殊的Attribute

class="csharpcode">using System.ComponentModel.DataAnnotations;

namespace Web.Models
{
    public class GalleryListItem
    {
        [Required(ErrorMessage="标题是必须的")]
        public string Title { get; set; }


        public string Key { get; set; }
        public string Photo { get; set; }

        public string Description { get; set; }
    }
}

3. 在页面中添加脚本引用

    <script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>
    <script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
    <script src="../../Scripts/MicrosoftMvcValidation.js" type="text/javascript"></script>
备注:这里必须使用MicrosoftMvcAjax,而不能使用jquery的那个validate.js
MicrosoftMvcAjax貌似会解析Model的所有属性,然后生成有关的验证规则,如下图所示
image 

 

 

4. 在页面中启用验证

<% Html.EnableClientValidation(); %>

 

 

5. 文本框应该采用类似使用如下的语法绑定

        <p>
            <label for="Title">
                标题:</label>
            <%= Html.TextBoxFor(m=>m.Title)%>
            <%= Html.ValidationMessageFor(m=>m.Title)%>
        </p>
        <p>
            <label for="Description">
                描述:</label>
            <%= Html.TextBoxFor(m=>m.Description)%>
            <%= Html.ValidationMessageFor(m=>m.Description) %>
            
        </p>

 

 

6. Action代码中使用下面代码进行验证(因为客户端可能禁用javascript,所以服务端还是要验证的)

        [AcceptVerbs(HttpVerbs.Post)]
        public ActionResult Edit(Models.GalleryListItem model)
        {
            if (ModelState.IsValid)
            {
                try
                {//这里做一些保存的操作

                    return RedirectToAction("List");
                }
                catch
                {
                    return View(model);
                }
            }


            return View(model);
        }
发表评论
用户名: 匿名