Je rencontre des problèmes lors de l'utilisation de la liste déroulante pour htmlhelper dans MVC. Lorsque le post-retour se produit, il n'y a rien sélectionné et les valeurs dans le modèle pour la liste et l'élément sélectionné sont null.MVC DropDownListFor Null Values
Voici mes modèles:
namespace MvcTestWebApp.Models
{
public class Customer
{
public string name { get; set; }
public List<SelectListItem> members { get; set; }
public Member selected { get; set; }
}
public class Member
{
public string name { get; set; }
}
}
Controller:
namespace MvcTestWebApp.Models
{
public class CustomerController : Controller
{
//
// GET: /Customer/
public ActionResult Index()
{
Customer cust = new Customer() { name = "Cust1" };
cust.members = new List<SelectListItem>();
cust.members.Add(new SelectListItem(){Text = "Bob"});
cust.members.Add(new SelectListItem(){Text = "Dave"});
return View(cust);
}
[HttpPost]
public ActionResult Index(Customer customer)
{
return View();
}
}
}
Et Vue:
@model MvcTestWebApp.Models.Customer
@{
ViewBag.Title = "Customer";
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title> Index </title>
</head>
<body>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Customer Data</legend>
@Html.HiddenFor(model => model.name)
@Html.DropDownListFor(model => model.selected, Model.members, "--Select--")
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
</body>
</html>
Lorsque je sélectionne quelque chose dans la liste de sélection et cliquez sur le bouton Soumettre nulls sont retourné:
Quelqu'un peut-il faire la lumière sur ce que je fais mal?
Ahh bien sûr. Merci beaucoup Stephen. Facile quand tu sais comment. –
+1 pour "Vous pouvez ajouter la collection FormCollection aux paramètres de l'action du contrôleur pour voir quelles informations MVC utilise pour construire les objets qu'elle transmet aux méthodes." J'ai accidentellement mis un formulaire d'attribut pour un autre formulaire et j'ai pensé pendant quelques heures, que mon DropDownListFor ne veut pas retourner Guid ... FormCollection m'a dit, que le problème est la forme pas le modèle – cadi2108