Asp.net mvc 如何以最快的方式将数据提取到viewmodel
我的网站有一个简单的问题。Asp.net mvc 如何以最快的方式将数据提取到viewmodel,asp.net-mvc,model,viewmodel,Asp.net Mvc,Model,Viewmodel,我的网站有一个简单的问题。 在我的站点中,我使用了两种不同的模型,带有一些相同的命名字段。 由于冲突,我必须给它们唯一的名称,为了不丢失modelbinding,我决定使用viewModels 我有一个这样的模型: namespace MySite.Models { public class Function : BaseEntity { //Beziehung zur Funktionsgruppe [Required] [Display(Name = "Übe
在我的站点中,我使用了两种不同的模型,带有一些相同的命名字段。 由于冲突,我必须给它们唯一的名称,为了不丢失modelbinding,我决定使用viewModels 我有一个这样的模型:
namespace MySite.Models
{
public class Function : BaseEntity
{
//Beziehung zur Funktionsgruppe
[Required]
[Display(Name = "Übergeordnete Funktion")]
public int FunctionGroupId { get; set; }
public virtual FunctionGroup FunctionGroup { get; set; }
[Required]
[StringLength(200)]
[Display(Name = "Bezeichnung")]
public string Name { get; set; }
}
}
namespace MySite.ViewModels
{
public class FunctionViewModel
{
//Properties of BaseEntity
public int F_Id { get; set; }
[Display(Name = "Erstellt")]
public string F_Created { get; set; }
[Display(Name = "Bearbeitet")]
public string F_LastChange { get; set; }
[Display(Name = "Bearbeiter")]
public string F_ByUser { get; set; }
//Beziehung zur Funktionsgruppe
[Required]
[Display(Name = "Übergeordnete Funktion")]
public int F_FunctionGroupId { get; set; }
public virtual FunctionGroup F_FunctionGroup { get; set; }
[Required]
[StringLength(200)]
[Display(Name = "Bezeichnung")]
public string F_Name { get; set; }
}
}
我有一个新的ViewModel,如下所示:
namespace MySite.Models
{
public class Function : BaseEntity
{
//Beziehung zur Funktionsgruppe
[Required]
[Display(Name = "Übergeordnete Funktion")]
public int FunctionGroupId { get; set; }
public virtual FunctionGroup FunctionGroup { get; set; }
[Required]
[StringLength(200)]
[Display(Name = "Bezeichnung")]
public string Name { get; set; }
}
}
namespace MySite.ViewModels
{
public class FunctionViewModel
{
//Properties of BaseEntity
public int F_Id { get; set; }
[Display(Name = "Erstellt")]
public string F_Created { get; set; }
[Display(Name = "Bearbeitet")]
public string F_LastChange { get; set; }
[Display(Name = "Bearbeiter")]
public string F_ByUser { get; set; }
//Beziehung zur Funktionsgruppe
[Required]
[Display(Name = "Übergeordnete Funktion")]
public int F_FunctionGroupId { get; set; }
public virtual FunctionGroup F_FunctionGroup { get; set; }
[Required]
[StringLength(200)]
[Display(Name = "Bezeichnung")]
public string F_Name { get; set; }
}
}
现在我的问题是,是否有一种方法可以在加载ViewModel时自动获取相应模型的数据
类似于直接在{get;set;}
?实际上,我将一个字段一个字段地从模型加载到ViewModel中 希望我能正确描述我想做的事情
您可以使用Carsten将数据从模型映射到ViewModel或从ViewModel映射到ViewModel。如果属性的名称不同,则很难映射/配置,因此在视图模型中也要使用相同的名称。(如果可能)正如我在上面写的,我需要不同的字段。这就是我使用ViewModels的原因。是的,您可以保留不同的字段,这没有问题。您仍然可以使用Automapper将您的详细信息从模型映射到ViewModel,反之亦然。有人知道Automapper实际版本的图版吗?我太愚蠢了,无法理解他们的页面和我发现的所有过时的图坦卡蒙。检查这些文章,这样你就可以了解如何使用Automapper——谢谢你,我会尝试一下:)