web-dev-qa-db-fra.com

asp.net-mvc Comment changer la largeur Html.TextBox

comment changer la largeur d'une zone de texte dans une vue asp.net-mvc

je veux avoir ces champs côte à côte et la zone de texte d'état de largeur beaucoup plus courte

            <p>
                <label for="city">City:</label>
                <%= Html.TextBox("city")%>
                <label for="state">State:</label>
                <%= Html.TextBox("state")%>
            </p>

MODIFIER:

aucune des réponses ci-dessous ne semble fonctionner pour moi. J'ai remarqué que dans site.css je vois ceci:

fieldset p 
{
    margin: 2px 12px 10px 10px;
}

fieldset label 
{
    display: block;
}

fieldset label.inline 
{
    display: inline;
}

legend 
{
    font-size: 1.1em;
    font-weight: 600;
    padding: 2px 4px 8px 4px;
}

input[type="text"] 
{
    width: 200px;
    border: 1px solid #CCC;
}

input[type="password"] 
{
    width: 200px;
    border: 1px solid #CCC;
}

comment remplacer ce comportement pour un champ (zone de texte)

19
leora

J'utiliserais la signature d'aide qui prend les attributs HTML et lui attribuerais une classe CSS. Vous utiliseriez ensuite CSS pour obtenir l'apparence souhaitée.

 <%= Html.TextBox( "state", null, new { @class = "small-input" } ) %>
32
tvanfosson
<%= Html.TextBox("state", null, new { @style = "width: 300px;" })%>
21
Jeff Widmer

css

.yourcssclassname{width:50px;}

html

<%= Html.TextBox("city", null, new{@class="yourcssclassname"})%>

cela devrait le faire ... vous pouvez aussi évidemment envoyer un attribut de style, mais les classes css sont un meilleur chemin à choisir.

string.Empty représente la valeur par défaut.

Edit: voir le post de tvanfosson

réponse fixe afin de résoudre les problèmes mentionnés dans les commentaires.

1
Peter

Vous pouvez utiliser l'assistant TextBox pour ajouter des attributs arbitraires à votre zone de texte. Par exemple:


<%= Html.TextBox( "state", null, new { size = "10" } ) %>

Rendra quelque chose comme:


<input type="text" name="state" size="10" />
0
Matthew Groves

Si vous utilisez le modèle MVC par défaut fourni avec VS. La spécification explicite d'une classe dans les attributs html de la zone de texte ne semble pas remplacer Site.css, cependant, un style en ligne fonctionne. Alors:

{@style= "width: 400px;"} 

fonctionnera, alors que cela ne fonctionnera pas:

{@class="myclass"}
0
bcleary