0

mvc3 モデルからテキストボックスの幅を設定する方法、私のモデルが次のようになっているとします。

public class MVCMODEL
{
    [Required] 
    public  int Name{ get; set; }
}

このテキストボックスがビューでレンダリングされるとき、その幅が800pxモデルにカスタムスタイルを追加する方法になるようにしたいですか?

ありがとう 、

4

5 に答える 5

3

モデルからこれを行うことはできません。MVC では、モデルは、ページとの間で送受信される情報に対応するデータ構造の表現です。MVC のまさにポイントは、サイトの美学を実際に実行するロジックから分離することです。ビューの視覚的な側面を設定するには、ビューの CSS を変更する必要があります。

于 2012-12-04T11:41:55.620 に答える
1

これは特定のレイアウト動作であるため実行できません。そのため、width必要に応じてビューで を設定する必要があります。このようなものはあなたの問題を解決します:

@Html.TextBoxFor(model => model.Name, new { style = "width: 800px;"})
于 2012-12-04T11:44:24.700 に答える
1

独自の型属性拡張を追加し、それに応じてモデル/ビュー モデル プロパティを装飾することもできますが (このブログ投稿DataAnnotationに従って)、これは IMO の懸念の恐ろしい汚染になります。

同様の手法を使用し、ハードコードされた幅をレンダリングする代わりに、モデル プロパティを CSS クラスで装飾し、それに応じて CSS を使用して書式設定を制御する方が、多少良いでしょう。ただし、純粋主義者は依然として同意しない可能性があります。ビュー モデルに CSS クラスを適用することでさえ、一線を越えている可能性があります。

例えば

[HtmlProperties(CssClass="LargeTextBox")]
[Required] 
public  int Name{ get; set; }

レンダリングされた Html は

<input type="text" value="" name="Name" id="Name" class="LargeTextBox"/>

実際の幅は、適切な方法で制御されます。.css

于 2012-12-04T11:52:59.333 に答える
0

他のすべての回答に同意します...モデルでフィールドの最大長を次のように定義することもできます。

public class MVCMODEL
{
    [Required] 
    [MaxLenght(300)] // number of characters allowed in this field.
    public  int Name{ get; set; }
}
于 2012-12-04T15:18:43.537 に答える
0

このようなものを書くことができます。

:<%=Html.TextBoxFor(m => m.Name, new { size=4})%>

于 2012-12-08T08:27:47.140 に答える