2017-05-02 1 views
0

Hallo wieder stackoverflow! Anfänger, die noch hier lernen, ich versuche jetzt, eine kleine MVC mit Entity Framework-Anwendung (Website?) Zu erstellen. Ich bin an den Punkt gekommen, wo ich einen neuen Benutzer erstellen, bearbeiten, löschen kann. Jetzt habe ich eine neue Seite erstellt und aus einer Dropdownliste möchte ich einen Personennamen (den ich auf der anderen Basis eingegeben habe) aus der Datenbank auswählen, jetzt nachdem die Dropdownliste ausgefüllt ist, möchte ich auf deren klicken können Name und entweder automatisch auf die Personen bearbeiten Seite, oder klicken Sie auf eine Bearbeitungsschaltfläche, die mich auf ihre Seite bringt.MVC w/Entity Framework umleiten auf Bearbeitungsseite von Dropdownliste

[dropddownlist] < Diese enthält die Namen

[John Smith 1] < Nun möchte ich auf einen Namen klicken, stellt der 1 seine Studentenausweis und beide „John“ und „smith“ getrennte Teile des Tabelle in der Datenbank.

[John Smith 1] [Bearbeiten] < jetzt, dass ich seinen Namen in der dropdownlist ausgewählt habe kann ich auf die kleine Bearbeitungsschaltfläche klicken und es bringt mich zu einem anderen Teil meines kleinen Projekts die Bearbeitungsseite! localhost/employees/edit/1

In meinem Dropdown-Liste Controller habe ich dies (FirstN ist Vorname und LastN ist Nachname in der Datenbank).

public ActionResult Index(string ddl) 
{ 
    ViewBag.ddl = (from r in db.Students select r.FirstN + "," + r.LastN); 
} 
public ActionResult Edit(string ddl) 
{ 
    Student student = db.Students.Find(ddl); 
    if (student== null) 
    { 
     return HttpNotFound(); 
    } 
    return View(student); 
} 

Unter der Ansicht Ich habe diese

@Html.DropDownList("Edit", new SelectList(ViewBag.ddl)); 
@Html.ActionLink("Edit", "Edit", new SelectList(ViewBag.ddl)) 

Diese nicht zu funktionieren scheint, und ich bin nicht wirklich überall zu bekommen. Ich möchte also versuchen, einen anderen Ansatz zu finden.

Meine Frage Ich frage Hilfe für ist: Ich möchte ihre Namen auf einen Wert ihrer studentID setzen (dies ist aus der Datenbank und kann nicht fest codiert sein FirstN: John LastN=Smith StudentID=1), aber klicken Sie dann auf die Schaltfläche Bearbeiten oder suchen und gehen localhost/EditStudent-localhost/student/edit/1 und es würde Sie zum „John Smith“ bearbeiten Seite.

Dank an alle, die sich die Zeit dieses!

Antwort

0

Ok zu lesen braucht ... Lassen Sie mich Ihnen den Weg erklären, die ich kenne .. Vielleicht jemand anderes wird einen einfacheren Weg haben ...

Ich erkläre dies, ohne es in einem Code-Editor zu versuchen, also, wenn es irgendeinen Fehler gibt, den irgendjemand merkt, dann benachrichtige mich bitte.

Ich hoffe, Sie müssen den ausgewählten Wert auf die Post-Methode im Controller erhalten. Betrachten wir einen Modellnamen als Studenten. So bekommen unsere Arbeit getan Wir brauchen ein Modell als

public class StudentListModel 
{ 
public List<Student> StudentList{ get; set;} 
public SelectList StudentSelectList { get; set;} 
public int SelectedStudentId { get; set;} 
} 

[HttpGet] 
public ActionResult StudentList() 
{ 
    StudentListModel studentList = new StudentListModel(); 
    studentList.StudentList = //Code to load the student. 
    studentList.StudentSelectList = new SelectList(studentList.StudentList, "StudentId", "StudentName"); 
    return View(studentList); 
} 

Und in Aussicht schaffen

@Html.DropDownListFor(m=>m.SelectedStudentId , Model.StudentSelectList, "Select Student") 

dann in der Steuerung der post-Methode sein wird.

[HttpPost] 
public ActionResult StudentList(StudentListModel studentListModel) 
{   
int SelectedStudentValue = studentListModel.SelectedStudentId; 
// Do other operations with the id 
return View(); 
} 
Verwandte Themen