2011-01-18 4 views
3

Je suis en train de garder une trace des employés dans ma base de données.MVC modèle de conception pour les entités

J'ai une classe d'entité:

[Table(Name = "Employees")] 
public class Employee 
{ 
    [HiddenInput(DisplayValue = false)] 
    [Column(IsPrimaryKey = true, IsDbGenerated = true, AutoSync = AutoSync.OnInsert)] 
    public int EmployeeID { get; set; } 

    [Column] 
    [Required] 
    public string FirstName { get; set; } 

    [Column] 
    [Required] 
    public string LastName { get; set; } 

    [Column] 
    [Required] 
    public string Email { get; set; } 
} 

Je suis en train de créer une page pour ajouter un employé à la base de données. J'ai donc créé un ViewModel:

public class EmployeesAddViewModel 
{ 
    public Employee employee { get; set; }   
} 

J'ai créé le ViewModel comme celui-ci parce que je l'intention d'ajouter d'autres choses au modèle plus tard qui ne sont pas dans la table Employés. Je voulais juste commencer par ça pour voir si tout fonctionnait correctement.

et j'ai ma page:

<%@ Page Inherits="System.Web.Mvc.ViewPage<EmployeesAddViewModel>" ... %> 

<% using (Html.BeginForm("Add", "Employees", FormMethod.Post)) { %> 
    <%: Html.EditorForModel() %> 
    <input type="submit" value="Save" /> 
<% } %> 

Mais quand je vois ma page, il ne montre pas de champs de formulaire pour mon modèle, il ne montre rien.

Ai-je besoin d'avoir des champs dans mon modèle pour chaque champ d'entité au lieu de simplement avoir la totalité de la classe Employé dans mon modèle? Je ne sais pas ce que je fais mal ici.

Répondre

3

Vous pouvez appeler Html.EditorFor(m => m.Employee)

Le modèle de l'éditeur par défaut ne considère pas les propriétés de type complexe.

Questions connexes