2009-04-22 21 views

Répondre

4

Bonne question. Je pense que les contrôles d'entrée (par exemple, entrée, sélectionner) sont enveloppés dans des aides HTML afin qu'ils puissent maintenir leur propre état via TempData sans que l'utilisateur ait à écrire beaucoup de code pour y parvenir. Je pense aussi que les contrôles de lien et de formulaire sont enveloppés pour donner un moyen facile et uniforme de spécifier le contrôleur/action pour ces contrôles. La plupart des autres contrôles ne justifient pas une gestion d'état prête à l'emploi ou des URL de contrôleur de besoin/d'action construites.

Bien sûr, rien ne vous empêche d'écrire vos propres emballages pour les commandes que vous aimez - par ex. voici quelques-je utiliser - voici un pour un contrôle d'étiquette html:

public static string Label(this HtmlHelper helper, string fieldName, string labelText) 
{ 
    var sb = new StringBuilder(); 
    sb.Append("<label for=\""); 
    sb.Append(fieldName); 
    sb.Append("\">"); 
    sb.Append(labelText); 
    sb.Append("</label>"); 
    return sb.ToString(); 
} 

Et voici une que j'utilise qui enveloppe cette aide de l'étiquette et une zone de texte pour produire un champ de saisie de texte uniforme complet avec l'étiquette:

public static string TextField(this HtmlHelper helper, string labelText, string fieldName, string value) 
{ 
    return string.Concat(
     "<div>", 
     helper.Label(fieldName, labelText), 
     helper.TextBox(fieldName, value), 
     "</div>"); 
} 
3

J'ai trouvé la réponse de Phil Haack en fil "Html.SubmitButton() missing in Preview4?" en ce qui concerne le problème:

Oui, nous essayons de garder les aides un peu minimaliste. Non seulement nous avons reçu des commentaires de certaines personnes que beaucoup de nos aides sont inutiles. "Je sais HTML, pourquoi ai-je besoin d'un assistant SubmitButton?".

Nous avons pensé que, puisque les boutons d'entrée ne sont pas généralement utilisés pour rendre l'entrée utilisateur , la méthode d'aide a la valeur marginale . Après tout, avec l'éditeur VS HTML , vous obtenez intellisense lorsque vous tapez . Il vous indique quels attributs sont disponibles. Notre assistant ne le fait pas.

...

La chose que nous voulons éviter est d'avoir une aide pour chaque élément html. Que n'aurait aucun sens: Html.Div. Nous voulons trouver une justification de pour les aides Peut-être que nous avons un pour tous les éléments de forme communs, pas seulement ceux qui montrent l'utilisateur entrée. C'est une possibilité dans laquelle nous incluons SubmitButton.

En ce moment, notre raison d'être est une aide de forme commune qui rend l'entrée d'utilisateur, ou tout autre aide qui rend le routage information, a une aide ...