你好再次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"编辑页面。
感谢任何花时间阅读此内容的人!
答案 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();
}