2011-08-19 2 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를 사용하는 것이라고 생각합니까? 그렇지 않니?

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

나는 두 가지 질문이 있습니다 : 어떻게 오류를 해결할 수 이 내 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; } 
    } 

컨트롤러입니까? 그리고 어떻게 데이터베이스를 업데이트 할 수 있습니까?

"UpdateModel()"을 사용하는 것이 좋습니다 ...?

미리 감사드립니다.

답변

1

두 번째 질문은 모델을 데이터베이스에 유지하는 데 사용하는 코드를 포함하지 않았기 때문에 확실하지 않습니다.

")"예상 오류는 ListBoxFor 메서드 호출 끝에 세미콜론이 있기 때문입니다.

은 다음과 같아야합니다

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

당신이 <%를 사용하는 경우 = 당신은 세미콜론이 필요하지 않습니다.

관련 문제