2

asp.net Mvc3 カミソリでは、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>
}

さて、私のコントローラーでは、その保存アクションで、リストボックスで選択された値をキャプチャする必要があります。次のことを試しました

[AcceptVerbs(HttpVerbs.Post)]
        public ActionResult Save(FormCollection formValue) 
        {
            //need code to capture values                
            return View("Index");
        }

誰か助けてくれませんか

前もって感謝します

4

2 に答える 2

3

以下を試してください

 @Html.ListBox("students",ViewBag.students )

フォーム コレクションから「学生」の値を取得します。それについては、次のページを参照してください

FormCollection から ListBox で選択したアイテムをプルする

MVC でのリストボックスの優れた実装については、この記事をお読みください。

ASP.NET MVC 選択リストの例

于 2012-10-15T05:45:49.740 に答える
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; }
}
于 2012-10-15T05:44:28.977 に答える