Comment puis-je obtenir l’élément sélectionné dans la liste déroulante et le soumettre à ma vue Détails?

J’ai une forme de razor MVC. Ce que je veux, c’est soumettre la sélection de l’utilisateur à partir de la liste déroulante Éléments et accéder à la vue Détails afin d’accéder aux informations de l’élément choisi.

Actuellement, lorsque je clique sur le bouton d’envoi, je navigue avec succès dans la vue Détails, mais aucune donnée ne s’affiche.

Pouvez-vous m’aider s’il vous plaît?

Vue

@using (Html.BeginForm("Details", "Bookings", FormMethod.Post)) { 
Type/Item @Html.DropDownList("department", ViewBag.ItemTypesList as SelectList, "Select a Type", new { id = "ItemTypeID" })

} $('#ItemTypeID').on('change', function () { $.ajax({ type: 'POST', url: '@Url.Action("GetItemTypeForm")', data: { itemTypeId: $('#ItemTypeID').val() }, success: function (results) { var options = $('#ItemsID'); options.empty(); options.append($('').val(null).text("- Select an Item -")); $.each(results, function () { options.append($('').val(this.ItemsID).text(this.Value)); }); } }); });

Manette:

  public ActionResult Details(ssortingng id) { var item = db.Items.Find(id); return View(item); } [HttpPost] public JsonResult GetItemTypeForm(ssortingng itemTypeId) { //pseudo code var data = from s in db.Items where s.ItemType.ItemTypeName == itemTypeId select new { Value = s.ItemName, ItemsID = s.ItemId }; return Json(data); } 

utilisez la méthode Items in Details si vous souhaitez obtenir la valeur Items

  public ActionResult Details(int Items) { var item = db.Items.Find(Items); return View(item); } 

Une liste déroulante n’envoie que des valeurs simples. Le nom doit généralement correspondre au nom du paramètre dans la signature de la méthode. Rappelez-vous que c’est l’atsortingbut name qui est la clé dans la chaîne de requête et non l’atsortingbut id. D’où l’utilisation de department dans cet exemple et d’éléments dans la réponse de @ Murali.

Essayez de changer votre méthode de détails pour:

  public ActionResult Details(ssortingng department) { var item = db.Items.Find(department); return View(item); }