ASP.NET mvc:在两个列表框中填充数据(绑定数据)

本文关键字:数据 列表 绑定 填充 两个 mvc NET ASP | 更新日期: 2023-09-27 18:05:16

可能重复:
ASP。NET mvc:在列表框中填充(绑定数据(

这就是我所拥有的:我有一个数据库,其中有一个名为"Students"的表。我还有一节课叫"学生"。我需要向用户显示列表框:一个是普通学生,另一个是没有上课的学生。所以我有一个actionresult返回两个列表框。。。但它不起作用。。。我做错了什么?

这是部分类"Docent"的布局:

public IEnumerable<Student> GiveStudentsNormal(int lesson, int klass)
        {
            Lesson l = giveLesson(lesson);
            Klass k = GiveKlass(lesson, klass);
            return (k.Students).AsEnumerable();
        }

public IEnumerable<Student> GiveStudentsNoClass(int lesson, int klass)
            {
                Lesson l = giveLesson(lesson);
                Klass k = GiveKlass(lesson, klass);
                return (k.Students).AsEnumerable();
            }

因此,在我的控制器中,我使用这些学生列表来填充我的两个列表框。因此,一个控制器需要填充在同一视图中的这两个lisbox。但我的问题是,我可以将对象"Student"传递到我的列表框中吗?还是应该将所有内容转换为字符串

班级学生模型:

public class StudentModel
    {
        public IEnumerable<String> NormalStudents { get; set; }
        public IEnumerable<String> NoClassStudents { get; set; }
    }

但我真的需要StudentModel这个课程吗?控制器:

public ActionResult IndexStudents(Docent docent, int lessonid, int klassid)
        {
            var studentModel = new StudentModel
            {
               NormalStudents = docent.GiveStudentsNormal(lessonid, classid),
               NoClassStudents = docent.GiveStudentsNoClass(lessonid, classid)
            };
            return View(studentModel);
        }

视图:

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <h2>IndexStudents</h2>
    <div class="editor-field">
    <%: Html.ListBox("IndexStudentsNormal", Model.NormalStudents) %>
  </div>
  <div class="editor-field">
    <%: Html.ListBox("IndexStudentsNoClass", Model.NoClassStudents) %>
  </div>
</asp:Content>

该视图还返回一个错误:它不知道NormalStudents和NoClassStudents 的方法

我该怎么办?

ASP.NET mvc:在两个列表框中填充数据(绑定数据)

视图中的第一行应该包括:

<%@ Inherits="System.Web.Mvc.ViewPage<StudentModel>" %>

这告诉您的视图"Model"是StudentModel类型。如果第一行中还有其他部分(标题、语言、MasterPageFile等(,它们可以留在那里。