Afficher un contenu en fonction d'une drop down liste
Bonjour,
Comme dit dans le titre j'ai besoin d'afficher du contenu en fonction de la sélection d'une valeur dans une liste déroulante. Pour être un peu plus précis j'ai un module lien qui est composé de deux "objets". Un "objet" lien qui est composé de plusieurs champs (lien, image ,description, titre,..) et un objet catégorie. Une catégorie permet de regrouper plusieurs liens.
Le but est donc d'avoir une drop down liste affichant la liste des catégories et en fonction de la sélection faite afficher mes info sur les liens correspondants. J'ai donc besoin dans mon cas de récupérer la valeur sélectionnée et de la passer en paramètre de mon "renderAction" qui affichera la liste des liens correspondant.
Je sais qu'il est possible de le faire en javascript mais je ne connais pas du tout cette techno. J'aimerai donc savoir si il existe un moyen de le faire en asp.net MVC ou si je suis forcé de le faire en JS. Si c'est le cas quelques liens vers des tuto seront les bienvenus...
Après toutes ces explication place au code ;)
Voici mon contrôleur:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
/// <summary>
/// Retourne la vue qui affiche la liste des catégories
/// </summary>
/// <param name="id">correspond a l'id du contenu (une catégorie appartient a un contenu)</param>
/// <returns></returns>
public ActionResult Liencategorie(int id)
{
var idLangue = _serviceLangue.getIdLangueDefault();
ViewData["categorie"] = new SelectList(_service.ListcategorieLien(id, idLangue), "idWsgModuleLienCategorieWsgModuleLienCategorieContenu", "titreWsgModuleLienCategorieContenu");
return View();
}
/// <summary>
/// permet d'afficher la liste des lien en fonction d'une catégorie
/// </summary>
/// <param name="id">correspond a l'id de la catégorie sélectionnée dans la liste</param>
/// <returns></returns>
public ActionResult LienListe(int id)
{
var idLangue = _serviceLangue.getIdLangueDefault();
return View(_service.ListLienContenuLangue(idLangue,id));
} |
Puis ma vue avec la drop down liste:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MaquetteNouvelleSolution.Models.wsgModuleLienCategorieContenu>" %>
<fieldset>
<legend>Lien</legend>
<div>
<%= Html.DropDownListFor(model => model.idWsgModuleLienCategorieWsgModuleLienCategorieContenu, (SelectList)ViewData["categorie"]) %>
</div>
<% Html.RenderAction("LienListe", "Liens", new { id= "8" }); %>
</fieldset> |
Pour L'instant l'id (en gras) est passé en dur mais il doit être remplacé par une variable qui correspond à la valeur de la ddl.
J'espère avoir été clair.
Merci d'avance pour le temps passé sur mon post.
cordialement