使用ModelBinding简化ASP.NET页面参数获取逻辑

我做的ModelBinding文件下载地址如下:https://files.cnblogs.com/xiaodstyle/ASP.NetModelBinding.rar

此功能模块为模仿MVC的ModelBinding开发的,目的为的是ASP.NET页面在不更换框架的情况下,可以将代码逐渐规范简化。

功能如下:

1通过定义标准的验证逻辑,将验证逻辑从自己编写大量代码变为为属性(Perproty)增加特性(Attribute),最终由统一对象进行处理。

2通过统一的定义标准,将JS验证和服务器端验证进行一致描述。集成了JQuery的表单验证。

集成后,代码变为如下:

以下代码完成了登录界面用户名和密码的必填校验,密码长度校验,错误显示等。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ASP.NetModelBinding;
using ASP.NetModelBinding.Attribute;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;

public partial class _Default : System.Web.UI.Page
{
public TestHelper<_Default> helper = new TestHelper<_Default>();

[Required(ErrorMessage="请输入您的用户名")]
[ControlBind("TextBox1")]
[DisplayName("用户名")]
public string UserName { get; set; }

[Required(ErrorMessage = "请输入您的密码")]
[ValidateLength(3,10)]
[ControlBind("TextBox2")]
[DisplayName("密码")]
public string PassWord { get; set; }

protected void Page_Load(object sender, EventArgs e)
{
helper.Page = this;
helper.ViewDataModel = this;

if (IsPostBack)
{
helper.UpdateModel();

      if(!helper.HasError()){

        //这里可以直接访问UserName和PassWord属性

      }
}
}
}

前端界面上只是增加了两个文本框,TextBox1和TextBox2。

这个只是我做的测试版本肯定还会有这样那样的问题,希望能够提高开发效率的同仁们一起来优化。

posted on 2011-08-23 16:43  小D风格  阅读(353)  评论(0)    收藏  举报

导航