2008-11-10 7 views
0

Comment lier la valeur du bouton radio généré avec l'aide HTML Html.RadioButton() à un champ dont le type est struct?Modélisation par défaut pour enum dans ASP.NET MVC?

moins abstraites:

CommonProject.Services.SearchBag.Effects:

public enum Effects 
{ 
    Any, 
    Solid, 
    Effect 
} 

Dans le ViewData fortement typé:

public class SearchBag{  
    public Effects EffectIndicator { get; set; } 
} 

Et à mon avis (cela ne fonctionne pas vraiment):

<%=Html.RadioButton("SearchBag.EffectIndicator", "Any", ViewData.Model.SearchBag.EffectIndicatorIsAny, new { @id = "SearchBag.EffectIndicatorAny" })%> 

MISE À JOUR
Il semble fonctionner une fois ..
Initialement, il crée les radiobuttons comme vous le souhaitez, lorsque vous modifiez la valeur et à l'arrière postez, la valeur est correctement lié. Ensuite, lors de la régénération de la page, toutes les valeurs des boutons sont définies sur la valeur que vous avez choisie précédemment.

+0

Reliez-vous vos données de vue après l'exécution de l'action? En outre, définissez-vous le paramètre isChecked du RadioButton Helper? –

Répondre

1

Si votre vue est fortement typée avec SearchBag que votre vue classe données vous devriez être en mesure de faire quelque chose le long de ces lignes:

<%= Html.RadioButtonFor(model => model.EffectIndicator, "Any", new { @id = "SearchBag.EffectIndicatorAny" }) %> 

Puis, lorsque votre formulaire de vue est présenté au contrôleur à, il serait ressembler à:

public class MyController : Controller 
{ 
    public ActionResult MyActionMethod(SearchBag searchBag) 
    { 
     Effects selectedEffect = searchBag.EffectIndicator; 
    } 
} 

Est-ce que l'aide?

Questions connexes