2012-04-05 23 views
7

Tengo una lista de tipo de procedimiento almacenado que tiene una ID y un Nombre como datos. tengo la propiedad del tipo int en el modelo y una lista del mismo procedimiento almacenado. ahora quiero unir esta información en ListBoxForCómo llenar ListBoxFor en Mvc3?

en vista que he escrito este

@Html.ListBoxFor(x => x.HobbyId, new MultiSelectList(Model.listHobby, "pkHobbyId", "Hobby")) 

pero yo estoy recibiendo un error

'expresión' el parámetro debe evaluar a un IEnumerable cuando la selección múltiple está permitida.

Ayuda a enlazar.

+0

Por favor, publique también el Modelo. ¿Qué tipo es listHobby ?. ¿Cómo le defines los valores? – Iridio

Respuesta

7

intentarlo de

@Html.ListBoxFor(x => x.HobbyId, Model.listHobby.Select(f => new SelectListItem { Text = f.Hobby, Value = f.pkHobbyId.ToString() }), new { Multiple = "multiple" }) 

listHobby está lista IEnumerable en mi muestra


lo siento si me engañe, corrí a contestar pero no se puede obtener el resultado del cuadro de lista de selección múltiple en un GUID o int variable (cualquiera que sea su tipo de HoobyId) debe tener una matriz para obtener el resultado como

public string[] SelectedHobbyIds { get; set; } 

así que debe haber algo mal con sus Visualización de modelos así que es mejor que u podría publicar sus modelos de vista que comprobar

+0

sí, lo obtengo. Estoy devolviendo el valor en la identificación de la afición, que es de int, mientras que tengo que volver en una colección. – Rachit

3
@Html.ListBoxFor(x => x.HobbyId, Model.listHobby.Select(f => new SelectListItem { Text = f.Hobby, Value = f.pkHobbyId.ToString() }), new { Multiple = "multiple" }) 

HobbyId de expresión debe ser IEnumerable porque configura múltiples seleccionar

+0

no funcionó para mí // controlador public ActionResult AddEditSupplier (int id) { clsSupplier _supp = new clsSupplier(); _supp.lstDocImgs = _supp.listDocImages(); // funciona bien _supp.lstDocFiles = _supp.listDocFiles(); // funciona bien return View (_supp); } // Ver pero en vista de que ambos no están trabajando @ Html.ListBoxFor (x => x.DocumentId, nuevo selectlist (Model.lstDocImgs, "DocumentID", "título")) @Html.ListBoxFor (x => x.DocumentId, Model.lstDocImgs.Select (f => new SelectListItem {Text = f.Title, Value = f.documentid.ToString()}) new {Multiple = "multiple"}) –

5

@ Chhatrapati Sharma,

en su controlador, intente esto,

ViewData['anyName'] = new SelectList { 
Text = , // text from ur function 
Value = , // Value from function 
Selected = // if required 
} 

y teniendo en cuenta, como obligar a la viewdata,

<@Html.ListBox("docImages", ((IEnumerable<SelectListItem>)ViewData["anyName"])) 

Para las pruebas, probar una partida de la muestra de la siguiente manera selectlist,

ViewData['anyName'] = new List<SelectListItem>{ 
       new SelectListItem {Text = "First", Value = "0"}, 
       new SelectListItem {Text = "Second"), Value = "1"}, 
       new SelectListItem {Text = "Third", Value = "2"} 
        }; 

Si las obras de esta muestra, a continuación, comprobar su función "_supp.listDocImages()" y asegúrese de que vuelva IList

Cuestiones relacionadas