c# - ASP.NET MVC3 在 View 中使用模型和自定义 ValidationModel

标签 c# asp.net asp.net-mvc-3

我有一个像这样的 View (遗漏了不重要的东西):

@model MyProject.Models.Accounts

        <div class="editor-label">
            @Html.LabelFor(model => model.Name)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Name)
        </div>

现在,我有一个单独的模型要用于验证。是否可以在 View 中同时使用我的数据模型和此验证模型?像这样的事情:

@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 自跟踪实体)自动生成的模型

我所说的 ValidationModel 是指像这样的自定义类:

public class AccountValidationModel
{
    [Required]
    public String Name {get; set;}
}

最佳答案

我认为通常更容易接受的做法是:

  1. 将属性添加到您的数据模型。
  2. 将您的 View 绑定(bind)到单独的 ViewModel(在本例中为您的 AccountValidationModel),并使用映射器工具(如 AutoMapper )在两个模型之间映射数据。

关于c# - ASP.NET MVC3 在 View 中使用模型和自定义 ValidationModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5992983/

相关文章:

c# - Linq to XML 比较字符串

c# - 从桌面而不是表单获取鼠标位置

asp.net - 在 ASP.NET MVC 4 中,子文件夹中的 _viewStart 文件是附加的还是单独的?

javascript - 调用 JavaScript 方法失败

jquery - 使用 Jquery 提交表单,提交 Get 而不是 Post

JQuery 1.6 $ ('form' ).validate() 在 IE7 和 IE8 中不起作用

c# - 多线程Web服务访问和修改List对象不是线程安全的

c# - 在 C# 中编写 PowerShell 模块时,如何存储模块状态?

javascript - 创建元素和事件(单击)

c# - foreach block 缺少结束字符 "}"