web-dev-qa-db-ja.com

asp.net-mvc Html.TextBoxの幅を変更する方法

asp.net-mvcビューのテキストボックスの幅をどのように変更しますか

これらのフィールドを並べて、状態テキストボックスの幅をもっと短くしたい

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

編集:

以下の答えはどれも私にはうまくいかないようです。私はsite.cssでこれを見ることに気づきました:

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;
}

1つのフィールド(テキストボックス)に対してこの動作をオーバーライドする方法

19
leora

HTML属性を取得し、CSSクラスを割り当てるヘルパーシグネチャを使用します。次に、CSSを使用して目的のルックアンドフィールを実現します。

 <%= 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"})%>

これでうまくいくはずです... style属性を使用して送信することもできますが、cssクラスを選択する方が適切です。

string.Emptyはデフォルト値を表します。

編集:tvanfossonの投稿を参照

回答を修正しましたので、コメントで言及されている問題を解決します。

1
Peter

TextBoxヘルパーを使用して、任意の属性をtextboxForインスタンスに追加できます。


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

次のようなものをレンダリングします:


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

VSに付属するデフォルトのMVCテンプレートを使用する場合。テキストボックスのhtml属性でクラスを明示的に指定しても、Site.cssはオーバーライドされないようですが、インラインスタイルは機能します。そう:

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

これはうまくいきませんが、これはうまくいきません:

{@class="myclass"}
0
bcleary