MVC w / Entity Framework重定向到下拉列表编辑页面

时间:2017-05-02 03:22:04

标签: c# asp.net asp.net-mvc model-view-controller

你好再次stackoverflow!新手还在这里学习,我现在正在尝试用实体框架应用程序(网站?)创建一个小型MVC。我已经达到了可以创建,新用户,编辑和删除它们的程度。现在我已经创建了一个新页面,并且从下拉列表中我想从数据库中选择一个人名(我已在另一个基础上输入),现在在填充下拉列表后,我希望能够点击他们的名字,然后自动重定向到人物编辑页面,或点击一个带我到他们页面的编辑按钮。

[dropddownlist]<这包含名称

[John Smith 1]<现在我点击一个名字,1表示他的学生证和两个" john"和"史密斯"是数据库中表的独立部分。

[John Smith 1] [编辑]<现在我在dropdownlist中选择了他的名字我可以点击小编辑按钮,它将我带到我的小项目的另一部分编辑页面! localhost/employees/edit/1

在我的下拉列表控制器中,我有这个(FirstN是名字,LastN是数据库中的姓氏。)

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);
}

根据我的观点

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

这似乎并没有起作用,而且我并没有真正到达任何地方。所以我想尝试一种不同的方法来实现目标。

我的问题是,我要求帮助:我想将他们的名字设置为studentID的值(这是来自数据库,不能硬编码{{1}然后点击编辑或搜索按钮,然后从FirstN: John LastN=Smith StudentID=1)转到localhost/EditStudent,它会转到" John Smith"编辑页面。

感谢任何花时间阅读此内容的人!

1 个答案:

答案 0 :(得分:0)

好的......让我解释一下我所知道的方式......也许别人会有更简单的方式...

我在没有在代码编辑器中尝试解释这个问题,所以如果有任何人注意到任何错误,请通知我。

我希望您需要将所选值添加到控制器中的post方法。 考虑我们有一个模型名称作为学生。完成我们的工作我们需要创建一个模型

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);
}

在视图中

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

然后在控制器中post方法就像。

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