2012-04-10 16 views
0

Ich fange gerade an, ASP.NET MVC zu untersuchen, und ich verwende die neueste Beta (dh. 4). Ich bin nach dem richtigen Ansatz zu einem ziemlich CRUD-Szenario. Meine Haupttabelle (Aufgabe) sieht ungefähr so ​​aus -ASP.NET MVC - Aktualisieren von Fremdschlüsseln

TaskId (int) EmployeeID (int) ProjectID (int) DeptID (int) Kommentar (varchar) Datum (Datumzeit) Hours (float)

TaskID ist der Primärschlüssel. Die anderen drei IDs sind alle Fremdschlüssel in Referenztabellen.

Nach verschiedenen Tutorials, erstellte ich ein Objektmodell (.edmx) mit Entity Framework. Ich habe dann den Controller automatisch mit "Add ... Controller" erstellt und die Vorlage "Controller with read/write ..." ausgewählt.

Alles hat gut funktioniert. Offensichtlich möchte ich jedoch, dass die drei Fremdschlüsselspalten Nachschlagewerte aus den Referenztabellen anstatt der ID anzeigen. Ich bin mir wirklich nicht sicher, was die "Best Practice" -Methode dafür ist. Ein paar Optionen zu mir kommen -

  1. eine Ansicht in SQL Server erstellen
  2. einen Blick in EF erstellen (nicht sicher, wie dies geschehen ist)
  3. die Referenzwerte im Fluge nachschlagen mit LINQ in der Controller

Vielleicht gibt es andere Möglichkeiten. Ich würde gerne von erfahrenen MVC Progs bezüglich "Best Practice" in diesem Szenario hören.

Antwort

2

würde es vorziehen, TaskViewModel Klasse zu haben, die Eigenschaften so etwas wie dieses

public class TaskViewModel 
{ 
    public Task Task { get; set; } 
    public Dictionary<int, string> ProjectList { get; set; } 
    //rest of the Lookup Properties like DeptList, EmpList 
} 
public class Task 
{ 
    public int TaskId { get; set; } 
    public int projectId { get; set; } 
    //Rest of the properties 
} 

würde haben und verwenden

@model TaskViewModel 
@Html.DropDownListFor(m => m.Task.projectId, new SelectList(Model.ProjectList, "key", "value", Model.Task.projectId))%> 
+0

Wo würden Sie die Ansicht Modell bevölkern? In der Steuerung? –

Verwandte Themen