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つのフィールド(テキストボックス)に対してこの動作をオーバーライドする方法
HTML属性を取得し、CSSクラスを割り当てるヘルパーシグネチャを使用します。次に、CSSを使用して目的のルックアンドフィールを実現します。
<%= Html.TextBox( "state", null, new { @class = "small-input" } ) %>
<%= Html.TextBox("state", null, new { @style = "width: 300px;" })%>
cSS
.yourcssclassname{width:50px;}
html
<%= Html.TextBox("city", null, new{@class="yourcssclassname"})%>
これでうまくいくはずです... style属性を使用して送信することもできますが、cssクラスを選択する方が適切です。
string.Emptyはデフォルト値を表します。
編集:tvanfossonの投稿を参照
回答を修正しましたので、コメントで言及されている問題を解決します。
TextBoxヘルパーを使用して、任意の属性をtextboxForインスタンスに追加できます。
<%= Html.TextBox( "state", null, new { size = "10" } ) %>
次のようなものをレンダリングします:
<input type="text" name="state" size="10" />
VSに付属するデフォルトのMVCテンプレートを使用する場合。テキストボックスのhtml属性でクラスを明示的に指定しても、Site.cssはオーバーライドされないようですが、インラインスタイルは機能します。そう:
{@style= "width: 400px;"}
これはうまくいきませんが、これはうまくいきません:
{@class="myclass"}