EditorForにhtml属性を追加してみます
@Html.EditorFor(model => model.UserName, new { style = "width: 100px" })
しかし、私が得る方法
<input id="UserName" class="text-box single-line" type="text" value="" name="UserName">
EditorForはこれらの属性を上書きします。回避策については、 ASP.NET MVCのEditorFor()のHTML属性 を参照してください。
変更する必要があるのが幅の表示だけで、エディターテンプレートに依存していない場合、最も簡単な修正はTextBoxForを代わりに使用することです
@Html.TextBoxFor(model => model.UserName, new { style = "width: 100px" })
私は同じ問題を抱えていて、これで解決しました...
<style type="text/css">
#UserName {
width: 100px;
}
</style>
@Html.EditorFor(model => model.UserName)
@Html.EditorFor()
は、モデル要素に基づいて使用されるコントロールのタイプを動的に決定します。
これらのカスタマイズは、@Html.LabelFor()
の@Html.TextBoxFor()
で機能します。次のコードは精巣であり、正常に動作します。
カミソリ:
_@Html.LabelFor(model => model.UserName, null, new { style = "display: inline;" })
@Html.TextBoxFor(model => model.UserName, null, new { style = "display: inline;" })
_
生成されたHTML
_<label style="display: inline;" for="UserName">
<input name="LastActivityDate" id="UserName" style="display: inline;" type="text" value=""/>
_
渡される2番目の引数はnull
であり、styleは3番目の属性であることに注意してください。 @Html.EditorFor()
を使用する必要がある場合は、スタイルの代わりにCSSクラスを使用する必要があります
@Html.EditorFor()
on [〜#〜] msdn [〜#〜]
注:コードはMVC4でテストされており、MVC3でも有効であることを願っています
使用する代わりに
@ Html.EditorFor(model => model.UserId)
使用する
@ Html.TextBoxFor(model => model.UserId、new {@Value = "Prabhat"})
価値があるのは、これと同じ問題でした。 Narenda Vのソリューションのわずかに異なるバージョンを使用して解決しました。
私はこのようなクラスを作成しました:(注-幅の代わりに最小幅)
.userName { min-width:40em; }
私の見解では:
@Html.EditorFor(model => model.UserName, new { @class = "userName" })
Min-widthではなくwidthを使用しなかった場合、機能しませんでした。ボブ
TextBoxForではなくEditorForを使用する必要があり、ページに複数のエディターがあるが、特定のエディターの幅を変更するだけでよい場合...最も簡単なのは、CSSスタイルをクラスIDに追加することです:
<style type="text/css">
input#UserName { width: 100px; }
</style>