2009-03-20 5 views
0

Lors de l'utilisation d'une vue partielle dans ASP.NET MVC pour encapsuler le balisage de création/modification, quelle est la meilleure façon de changer le contrôle rendu en fonction de l'action? Par exemple, je souhaite autoriser la saisie d'une adresse e-mail uniquement lors de la création du compte (via une zone de texte), puis être visualisée (via un code HTML brut) lors de la visualisation du compte.Champ ASP.NET MVC en lecture seule basé sur une action en vue partielle

En pseudo-code, je me attends quelque chose comme ceci:

<% if(Action == Create) { 
    Html.TextBox("EmailAddress") 
} else { 
    Html.Encode(Model.Person.EmailAddress) 
} %> 

Toutes les suggestions?

Répondre

1

Vous pouvez utiliser votre propre classe HTML Helper pour encapsuler la logique:

public static string DualModeTextBox(this HtmlHelper helper, ViewMode viewMode, string textBoxName, string textBoxValue) 
{ 
    if (viewMode == ViewMode.Edit) { 
    return System.Web.Mvc.Html.InputExtensions.TextBox(helper, textBoxName); 
    } 
    //else 
    return helper.Encode(textBoxValue); 
} 

Pour les tâches plus complexes, vous pouvez également envisager MVC controls.

Questions connexes