将ListBoxFor绑定到MVC 3中的Model并使用另一个Model自动选择多个项目

时间:2013-07-28 15:22:23

标签: asp.net-mvc asp.net-mvc-3 html.listboxfor

我有一个场景,其中我有一个与管理员关联的事件列表,其中包含具有eventid和eventname属性的事件。可以将出价者分配给一个事件。因此,投标人可以竞标多个事件。因此,在为管理员指定的事件创建投标人时。首先,我想将ListBoxFor绑定到具有与管理员关联的所有事件的模型。同样在绑定ListBoxFor时我必须记住它选择与此竞标者关联的那些事件。

1 个答案:

答案 0 :(得分:0)

<强>模型

public class Admin {
        private List<int> _selectedEventIds;
        public List<int> SelectedEventIds {
            get {
                return _selectedEventIds ?? new List<int>();
            }
            set {
                _selectedEventIds = value;
            }
        }
        private List<Events> _eventList;
        public MultiSelectList EventList {
            get {
                return new MultiSelectList(
                          _listeFonctions,
                          "EventId", // dataValueField
                          "EventName" // dataTextField
                );
            }
        }

        public Admin() { }
        public Admin(List<int> selectedEventIds, List<Events> eventList) {
            SelectedEventIds = selectedEventIds;
            _eventList = eventList;
        }
    }

    public class Event {
        public int EventId { get; set; }
        public string EventName { get; set; }

        public Event() { }
        public Event(int eventId, string eventName) {
            EventId = eventId;
            EventName = eventName;
        }
    }

查看

@model Admin

@using(Html.BeginForm()){
     @Html.ListBoxFor(admin => admin.SelectedEventIds, Model.EventList)
     <input type="submit" value="Save"/>
}

我认为你已经拥有了控制器。