2011-08-19 51 views
0

我遇到電流誤差在我看來,創建列表框:asp.net的MVC:使用的FormCollection

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<ProjectenII.Models.Domain.StudentModel>"%> 

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> 
    IndexStudents 
</asp:Content> 

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 
    <h2>IndexStudents</h2> 

    <%using (Html.BeginForm()) { %> 
    <%=Html.ListBoxFor(model => model.NormalSelected, new MultiSelectList(Model.NormalStudentsList, "StudentNummer", "Naam", Model.NormalSelected), new { size = "6" }); %> 

    <input type="submit" name="add" 
          id="add" value=">>" /><br /> 
    <input type="submit" name="remove" 
          id="remove" value="<<" /> 
    <%=Html.ListBoxFor(model => model.NoClassSelected, new MultiSelectList(Model.StudentsNoClassList, "StudentNummer", "Naam", Model.NoClassSelected)); %> 
    <% } %> 

    <%=Html.HiddenFor(model => model.Save) %> 
    <input type="submit" name="apply" id="apply" value="Save!" /> 
</asp:Content> 

它給了我一個錯誤的listboxfor()方法......說「)預期」。

但是我關閉了所有的開標籤......雖然很奇怪! 我想將它用於:我想將項目從一個列表框移動到另一個列表框,然後更新數據庫。所以我想用formCollection來做,除非有另一種方式?

學生有一個名爲「classID」的字段,當我更新數據庫時,該值需要從當前值更改爲「0」。我認爲最好的方法是使用formCollections?不是嗎? 這是我StudentModel

public class StudentModel 
    { 
     public IEnumerable<Student> NormalStudentsList { get; set; } 
     public IEnumerable<Student> StudentsNoClassList { get; set; } 
     public string[] NormalSelected { get; set; } 
     public string[] NoClassSelected { get; set; } 
     public string Save { get; set; } 
    } 

控制器:

public ActionResult IndexStudents(Docent docent, int id, int klasgroepid) 
     { 
      var studentModel = new StudentModel 
      { 
       NormalStudentsList = docent.GeefStudenten(id, klasgroepid), 
       StudentsNoClassList = docent.GeefStudenten(id, klasgroepid) 
      }; 

      return View(studentModel); 
     } 

我有兩個問題:我怎麼能修復這個錯誤?以及如何更新數據庫?

我建議使用「UpdateModel()」...?

在此先感謝!

回答

1

不知道你的第二個問題是什麼,因爲你沒有包含你用來將模型持久化到數據庫的代碼。

「)」預期錯誤是因爲您在ListBoxFor方法調用的末尾有分號。

它應該是這樣的:

<%=Html.ListBoxFor(model => model.NormalSelected, new MultiSelectList(Model.NormalStudentsList, "StudentNummer", "Naam", Model.NormalSelected), new { size = "6" }) %> 

當您使用<%=你不需要分號。

相關問題