Sto sviluppando un'applicazione MVC che contiene l'elenco a discesa multiselect. Voglio ottenere gli ID di più elementi selezionati del menu a discesa.Come passare gli elementi selezionati dell'elenco multiselect al controller?
Ho il codice nel modello di
namespace CustomerDEMOForMultiselect.Models
{
public class Customer
{
private int _ID;
private string _Name;
private double _Amt;
public int ID { get { return _ID; } set { _ID = value; } }
public string Name { get { return _Name; } set { _Name = value ; } }
public double Amt { get { return _Amt; } set { _Amt = value; } }
}
}
e il codice di controllo è
namespace CustomerDEMOForMultiselect.Controllers
{
public class CustomerController : Controller
{
public ActionResult DisplayCustomer()
{
Customer oCustomer = new Customer();
List<Customer> CustomersList = new List<Customer>();
CustomersList.Add(new Customer() { ID = 1, Name = "TestCustomer1", Amt = 123 });
CustomersList.Add(new Customer() { ID = 2, Name = "TestCustomer2", Amt = 234 });
CustomersList.Add(new Customer() { ID = 3, Name = "TestCustomer3", Amt = 324 });
ViewBag.CustList = CustomersList;
return View(CustomersList);
}
}
}
Non ricevo cosa scrivere in vista, ho provato il codice diverso, ma io sono sempre fonte di confusione .. .
Codice in Vista:
@model CustomerDEMOForMultiselect.Models.Customer
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<title>DisplayCustomer</title>
</head>
<body>
<div>
@using (Html.BeginForm())
{
@Html.DropDownListFor(v => v.ID, new MultiSelectList(ViewBag.CustList,"ID","Name",ViewBag.ID))
<br />
<input type="submit" value="Submit" />
}
</div>
</body>
</html>
Voglio mostrare il CustomerName list
in Visualizza, così posso selezionare il nome di più clienti e passare di nuovo l'ID cliente selezionato al controller. Come si fa?
Puoi postare ciò che hai provato finora nella visualizzazione? La tua vista fa riferimento a 'CustomerList' come modello nel formato previsto? Ad esempio '@model IList'. Dovresti anche dichiarare l'elenco come 'IList ' invece di 'Lista ' nel tuo codice. –
Nope
Ho usato il seguente codice. '@model CustomerDEMOForMultiselect.Models.Customer @ { Layout = null; }
}
ho aggiunto che il codice alla tua domanda, più facile da leggere :) – Nope