在asp.net Mvc3 razor中,我使用selectlist
在我的控制器视图包中用dbcontext绑定了一些数据我的控制器..
public ActionResult Index()
{
ViewBag.students = new SelectList(db.StudentList, "StudentID", "StudentName");
return View();
}
然后我使用viewbag将其绑定到ListBox
我的观点..
@using (Html.BeginForm("Save", "Student"))
{
@Html.ValidationSummary(true)
<div>
@Html.ListBox("students")
<p>
<input type="submit" name="Save" id="Save" value="Save" />
</p>
</div>
}
现在,在我的控制器中,在Save操作中,我需要捕获列表框中的选定值 我试过以下
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Save(FormCollection formValue)
{
//need code to capture values
return View("Index");
}
任何人都可以提供帮助
提前致谢
答案 0 :(得分:3)
尝试以下
@Html.ListBox("students",ViewBag.students )
从表单集合中获取“学生”的价值。为此,请参阅以下页面
Pulling ListBox selected items from FormCollection
要想在MVC中实现listbox,请阅读本文。
答案 1 :(得分:0)
试试:
public class StudentController : Controller
{
//
// GET: /Student/
public ActionResult Index()
{
var studentList = new List<Student>
{
new Student {StudentID = 1, StudentName = "StudentName1"},
new Student {StudentID = 2, StudentName = "StudentName2"},
new Student {StudentID = 3, StudentName = "StudentName3"},
new Student {StudentID = 4, StudentName = "StudentName4"}
};
ViewBag.students = new SelectList(studentList, "StudentID", "StudentName");
return View();
}
[HttpPost]
public ActionResult Save(String[] students)
{
return View();
}
}
public class Student
{
public int StudentID { get; set; }
public string StudentName { get; set; }
}