2008-11-27 5 views
45

Quelques exemples que j'ai trouvé que, apparemment, a travaillé avec les anciennes versions de mvc suggèrent qu'il y avait un paramètre de longueur de toutes sortes:Comment définir la largeur d'un HTML Helper TextBox dans ASP.NET MVC?

<%=Html.TextBox("test", 50)%> 

Mais qui aurait pu être mise à tort la valeur.

Comment cela fonctionne-t-il dans la version actuelle? Passer dans le style ne semble pas avoir d'effet.

Répondre

62

La réponse originale ne fonctionne plus comme il est écrit:

<%=Html.TextBox("test", new { style="width:50px" })%> 

vous obtiendrez une zone de texte avec « {style = » width: 50px « } » comme le contenu du texte.

Pour régler cela pour la version actuelle de MVC 1.0, utilisez le script suivant (notez l'ajout du second paramètre - j'ai la mienne à partir de blanc, adaptez les en fonction de vos besoins):

<%=Html.TextBox("test", "", new { style="width:50px" })%> 
+2

Oui, c'est vrai –

6

Quelque chose comme cela devrait fonctionner:

<%=Html.TextBox("test", new { style="width:50px" })%> 

Ou mieux:

<%=Html.TextBox("test")%> 

<style type="text/css"> 
    input[type="text"] { width:50px; }  
</style> 
+0

Ne serait-#test {width: 50px;} fonctionne tout aussi bien? –

1

Ne pas utiliser le paramètre de longueur car il ne fonctionnera pas avec tous les navigateurs. La meilleure façon est de définir un style sur l'étiquette d'entrée.

<input style="width:100px" /> 
40

Pour cela, vous devez utiliser htmlAttributes, mais il y a un hic: HtmlAttributes and css class.

vous pouvez le définir comme ceci:

new { Attrubute="Value", AttributeTwo = IntegerValue, @class="className" }; 

et voici un exemple plus réaliste:

new { style="width:50px" }; 
new { style="width:50px", maxsize = 50 }; 
new {size=30, @class="required"} 

et enfin:

MVC 1

<%= Html.TextBox("test", new { style="width:50px" }) %> 

MVC 2

<%= Html.TextBox("test", null, new { style="width:50px" }) %> 

MVC 3

@Html.TextBox("test", null, new { style="width:50px" }) 
0

nouveau {style = "width: 50px", maxsize = 50};

devrait être

nouveau {style = "width: 50px", maxlength = 50};

1

Mon échantillon réel pour MVC 3 est ici:

<% using (Html.BeginForm()) { %> 

<p> 

Start Date: <%: Html.TextBox("datepicker1", DateTime.Now.ToString("MM/dd/yyyy"), new { style = "width:80px;", maxlength = 10 })%> 

End Date: <%: Html.TextBox("datepicker2", DateTime.Now.ToString("MM/dd/yyyy"), new { style = "width:80px;", maxlength = 10 })%> 

<input type="submit" name="btnSubmit" value="Search" /> 

</p> 

<% } %> 

Ainsi, nous avons la suite

"DATEPICKER1" - ID du contrôle

DateTime. Now.ToString ("MM/jj/aaaa") - valeur par défaut

style = "largeur: 80px; "- largeur de la zone de texte

maxlength = 10 - nous pouvons entrée 10 caractères seulement

+0

MVC 4 n'est toujours pas sorti, et cela a été posté il y a un an * soulève un sourcil *. – Doomsknight

0

Set avec et maxlength zone de texte dans mvc3.0

@Html.TextBoxFor(model => model.SearchUrl, new { style = "width:650px;",maxlength = 250 }) 
Questions connexes