ASP.NET MVC3 在视图中同时使用模型和自定义验证模型
本文关键字:模型 验证 自定义 MVC3 NET 视图 ASP | 更新日期: 2023-09-27 17:56:16
我有一个这样的视图(遗漏了不重要的东西):
@model MyProject.Models.Accounts
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
</div>
现在,我有一个单独的模型要用于验证。是否可以在视图中同时使用我的数据模型和此验证模型?像这样:
@model MyProject.Models.Accounts
@validaitonmodel MyProject.Models.AccountValidationModel
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(validationmodel => validationmodel.Name)
</div>
提前谢谢。
编辑
我所说的"模型"是指由.edmx自动生成的模型(Ado.net 自跟踪实体)
通过验证模型,我的意思是这样的自定义类:
public class AccountValidationModel
{
[Required]
public String Name {get; set;}
}
我认为通常更容易接受的做法是:
- 将属性添加到数据模型。
- 将视图绑定到单独的 ViewModel(在本例中为
AccountValidationModel
),并使用映射器工具(如自动映射器)在两个模型之间映射数据。
也许元数据类型属性可以帮助你? http://msdn.microsoft.com/en-us/library/ee256141.aspx
验证模型必须实现所有属性以进行验证,并且必须对模型本身应用元数据类型属性。
来自堆栈溢出的快速样本:ASP.Net 基于元数据类型的C#验证模型
或者,像那个人一样,寻找另一种通过流畅验证进行验证的方法(从未尝试过)http://fluentvalidation.codeplex.com/wikipage?title=mvc&referringTitle=Documentation