c# - 在 ASP.Net MVC 中使用 AutoMapper 的正确方法

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

我正在尝试开始使用 ViewModels - 但我遇到了这个 POST 未验证的问题 - 模型中的值显示在代码下方的 Watch 部分中:

ModelStats.IsValid = false

Invalid ModelState

我的 ItemViewModel 是:

  public class ItemViewModel
  {
    public int ItemId { get; set; }
    [Display(Name = "Item")]
    public string ItemName { get; set; }
    [Display(Name = "Description")]
    public string Description { get; set; }
    [Display(Name = "Price")]
    public double UnitPrice { get; set; }
    [Range(0.00, 100, ErrorMessage = "VAT must be a % between 0 and 100")]
    public decimal VAT { get; set; }
    [Required]
    public string UserName { get; set; }
   }

我确信它会很简单 - 但我已经看了这么久,我无法弄清楚我做错了什么。任何人都可以请教吗?

谢谢,马克

最佳答案

就验证失败而言。

如果您不打算在表单中提供 UserName,请从 ItemViewModel 中删除 [Required] 属性


为了使用AutoMapper .您需要创建一个 map ,例如

 Mapper.CreateMap<Item, ItemViewModel>();

然后映射

var itemModel = Mapper.Map<Item, ItemViewModel>(model);

注意:CreateMap 只需创建一次,您应该在启动时注册它。请阅读 How do I use AutoMapper? .

关于c# - 在 ASP.Net MVC 中使用 AutoMapper 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16477498/

相关文章:

c# - NHibernate(或其他值得推荐的ORM),现实生活中的例子?

c# - 如何使用包含 "raw"JSON 的字符串成员序列化和反序列化类型,而无需在此过程中转义 JSON

javascript - ASP.NET MVC路由和路径是js文件

asp.net - MVC 3 授权自定义角色

c# - 关于验证显示 2 个表单的页面的建议

c# - .Replace(Environment.NewLine, "<br/>") 在本地主机上工作,但在我将我的网站上传到主机时不起作用

c# - 如何使用 System.DirectoryServices.AccountManagement 将用户添加到 AD?

c# - 如何在 ASP.NET MVC 4 中的两个完全不同的 View 之间保留数据?

c# - 为什么我的 asp.net identity -user 会自动注销

c# - 包罗万象的 Controller ,MVC