NClay.MVC是MVP?
通过一个简单的登陆需求来看一下NClay.MVC处理的结构。
Page:
    <table style="width: 314px" >
        <tr>
            <td class="style2">
                用户名</td>
            <td class="style1">
                <input id="Text1" class="custominput" name="UserName" style="width: 207px" 
                    type="text" 
                    validator="nonnull:true;type:string;tip:输入登陆用户名!;tipcontrol:nametip"  /></td>
            <td class="style3">
                <div id="nametip"></div></td>
        </tr>
        <tr>
            <td class="style2">
                密码</td>
            <td class="style1">
                <input id="Text2" class="custominput" name="UserPWD" style="width: 207px" 
                    type="password" 
                    validator="nonnull:true;type:string;tip:输入登陆密码!;tipcontrol:pwdtip"  /></td>
            <td class="style3">
                <div id="pwdtip"></div></td>
        </tr>
        <tr>
            <td align="center" colspan="3">
                <br />
                <input id="Submit1" class="custombutton" type="submit" value="登陆" />
               
        </tr>
</table>
View:
    [NClay.MVC.Action("~/login.aspx", NClay.MVC.ActionType.POST, typeof(Blog.Logics.Users.ILogin))]
    public class Login:BaseCode.BaseView,Blog.Logics.Users.ILogin
    {
        #region ILogin 成员
        public Blog.Entities.SysUser User
        { get; set; }
        public string UserName
        { get; set; }
        public string UserPWD
        { get; set; }
        #endregion
}
Interface:
    public interface ILogin
    {
        Entities.SysUser User
        {
            get;
            set;
        }
        string UserName
        {
            get;
            set;
        }
        string UserPWD
        {
            get;
            set;
        }
}
Logic:
        public void Login(ILogin logic)
        {
            
            if (!Common.IsEmpty(logic.UserName) && !Common.IsEmpty(logic.UserPWD))
            {
                logic.User = (DB.SysUser.UserName == logic.UserName 
                    & DB.SysUser.UserPWD == Common.MD5Crypto(logic.UserPWD.ToLower())).ListFirst<SysUser>();
            }
            if (logic.User == null)
                throw new LogicException("登陆错误,请输入正确的用户名和密码!");
}
Page请求到View的成员数据绑定和逻辑的执行处理都是NClay框架一手包办的,开发人员不需要编写任何一句调用代码。
虽然自己写这样一个东西有点闭门造车的感觉, 不过直得高兴的是经常努力后NClay.MVC可以灵活地运用在web或win应用开发中。