在做项目中,我们一直使用的是V(View)层和C(Controllers)层,视图的加载,数据的传递,一直都是View和Controller在交互,那么 M(Model)层的意义到底在哪???(我们新建一个MVC3.0应用程序)
- 我们这里所说的Model层,并不是我们三层设计中所提到的实体。此处的Model层是以能与用户更准确的交互事件为基础建立起来的一种模式。
public class ChangePasswordModel
{
[Required]
[DataType(DataType.Password)]
[Display(Name = "当前密码")]
public string OldPassword { get; set; }
[Required]
[StringLength(100, ErrorMessage ="{0} 必须至少包含 {2} 个字符。", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "新密码")]
public string NewPassword { get; set; }
[DataType(DataType.Password)]
[Display(Name = "确认新密码")]
[System.Web.Mvc.Compare("NewPassword", ErrorMessage ="新密码和确认密码不匹配。")]
public string ConfirmPassword { get;set; }
}
- Model的创建过程结合了两者:一者是我们常规中所说的实体,二者是实体的每个属性需要满足的格式,从而与用户进行验证交互。
- 那么model层又如何显示到界面上呢??
- 新建一个分页视图:引用相应的Model
- @model MvcApplication1.Models.RegisterModel
- 新建一个分页视图:引用相应的Model
@using(Html.BeginForm()) {
@Html.ValidationSummary(true,"密码更改不成功。请更正错误并重试。")
<div>
<fieldset>
<legend>帐户信息</legend>
<divclass="editor-label">
@Html.LabelFor(m =>m.OldPassword)
</div>
<divclass="editor-field">
@Html.PasswordFor(m =>m.OldPassword)
@Html.ValidationMessageFor(m=> m.OldPassword)
</div>
<divclass="editor-label">
@Html.LabelFor(m =>m.NewPassword)
</div>
<divclass="editor-field">
@Html.PasswordFor(m =>m.NewPassword)
@Html.ValidationMessageFor(m=> m.NewPassword)
</div>
<divclass="editor-label">
@Html.LabelFor(m =>m.ConfirmPassword)
</div>
<divclass="editor-field">
@Html.PasswordFor(m =>m.ConfirmPassword)
@Html.ValidationMessageFor(m=> m.ConfirmPassword)
</div>
<p>
<inputtype="submit" value="更改密码" />
</p>
</fieldset>
</div>
}
model层也有一些逻辑判断的内容,所以MVC的逻辑关系分的并不是特别清晰。
一点点小见解!!