2010-05-19 4 views
0

J'ai une vue partielle que j'utilise pour éditer et créer mes modèles. Lorsqu'un utilisateur est en train de modifier le modèle, j'aimerais qu'une liste déroulante particulière soit affichée sous forme de texte, car je ne veux pas qu'elle la modifie. Une liste déroulante en lecture seule suffirait, mais je préférerais le texte. Je pense que je peux accomplir cela via une méthode d'extension, mais je ne sais pas trop comment commencer. Toute aide serait appréciée!Rendu déroulant comme texte pour une action particulière dans ASP.NET MVC

+0

Est-ce que vous voulez que l'utilisateur soit en mesure de déposer la liste, ou souhaitez-vous simplement que la valeur d'affichage actuellement sélectionnée s'affiche dans la vue? –

+0

Ce dernier. Voir ma réponse ci-dessous .. – Dan

Répondre

0

Voici ce que j'ai essayé (et ça marche) - bien que je ne suis pas fan de si/est d'autre dans mes vues :)

<% if (ViewContext.Controller.ValueProvider.GetValue("action").RawValue.Equals("Edit")) 
     { %> 
    <span><%= Event.Retailer.Name%></span> 
    <%= Html.Hidden("Retailer", Event.Retailer.Id) %> 
    <%} 
     else 
     { %> 
    <%=Html.DropDownList("Retailer", Model.Retailers, "Select", new { @class = "field select large required" })%> 
    <%= Html.ValidationMessage("Retailer", "*")%> 
    <%} %> 
+0

Ah, je vois ce que vous faites maintenant. Si vous utilisez la même vue pour créer et éditer des enregistrements, une instruction 'if' est inévitable, car vous avez besoin d'un moyen de * changer l'état de la vue. * Je n'utilise généralement que deux vues différentes pour' create' et ' modifier ». –

+0

Oui - J'ai lu quelque part que si vous avez besoin d'une instruction "if", utilisez un assistant. Je pourrais faire Html.Retailer (..) je suppose. J'utiliserais une vue différente pour 'create' et' edit', mais les formulaires sont si similaires que j'ai pu les regrouper – Dan

Questions connexes