【问题标题】:asp.net mvc : create listbox using formcollectionasp.net mvc:使用 formcollection 创建列表框
【发布时间】:2011-08-19 17:32:54
【问题描述】:

在我看来,我遇到了当前错误:

<%@ 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 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()”...?

提前致谢!!

【问题讨论】:

    标签: asp.net asp.net-mvc listbox selectlist formcollection


    【解决方案1】:

    不确定您的第二个问题是什么,因为您没有包含用于将模型持久保存到数据库的代码。

    “)”预期错误是因为您在 ListBoxFor 方法调用的末尾有一个分号。

    应该是这样的:

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

    当您使用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 2020-10-22
      • 1970-01-01
      相关资源
      最近更新 更多