2011-06-09 3 views
0

J'ai une liste déroulante dans une vue, je dois utiliser la valeur sélectionnée de cette liste déroulante dans l'autre vue.Pass paramètres entre les vues-MVC-3-Not TempData approche

Je ne veux pas utiliser l'approche Tempdata car ce n'est pas la meilleure pratique.

Y a-t-il une meilleure approche pour cela?

Veuillez donner la meilleure solution de pratique.

Merci Hari

+0

Pouvez-vous nous donner une meilleure description de la façon dont sont liés les deux points de vue? Sont-ils à la fois des vues partielles dans une vue conteneur? Sont-ils séparés par plus d'une requête HTTP? –

+0

Ils sont des vues totalement différentes. Un nom de vue est AddAbsence et Other ViewName est AmendAbsence. –

+0

Lorsque vous publiez la valeur à partir de la première liste déroulante, restituez-vous la vue suivante (celle nécessitant la première valeur déroulante) à partir de cette action du contrôleur? –

Répondre

0

Je peux modifier cela vous me fournir une image plus grande (lire: plus de code) de ce qui est déjà dans votre point de vue

Première vue (votre List<SelectListItem> sera probablement différente)

@using (Html.BeginForm("Step2", "Silly")) { 
    @Html.DropDownList("NameOfDropDown", new List<SelectListItem>() 
    { 
     new SelectListItem() 
     { 
      Text = "Label 1", 
      Value = "1" 
     }, 
     new SelectListItem() 
     { 
      Text = "Label 2", 
      Value = "2" 
     } 
    }) 
    <input type="submit" value="Submit" /> 
} 

Ensuite, dans le contrôleur

public class SillyController : Controller 
{ 
    [HttpPost] 
    public ActionResult Step2(string NameOfDropDown) 
    { 
     // if the only value being passed is a string, you'll need 
     // to wrap it in something like a view model class 
     return View(new Step2ViewModel() { MyValue = NameOfDropDown }); 
    } 
} 

public class Step2ViewModel() 
{ 
    public string MyValue { get; set; } 
} 

Et dans la deuxième vue, Step2.cshtml (en supposant Razor)

@model Yournamespace.Step2ViewModel 

<div>@Model.MyValue</div>