2016-04-04 8 views
0

最新バージョンのMVCを使用して、アイテムのスタイルを変更したいと思います。MVCのコントロールとhtmlのスタイルを変更する

@Html.DisplayNameFor(model => model.Adresse, new { style="width:1000px;" }) 

しかし、それは、任意の要素のスタイルを変更しません。this questionを読んでから、私は、私はこのコードを使用すると考えていました。このコードを修正するにはどうしたらいいですか?

+1

をあなたは 'DisplayNameFor'を使用している場合、あなたはおそらく、'確認する必要があります[Display(Name = "name")] 'あなたのモデルプロパティの' Adresse'属性が出ます – zgood

+0

私はそれを持っています、私はこれのスタイルを変えることができますか? –

+0

それからCSSクラスを与えてこのクラスをコントロールに追加し、このクラスのスタイルをスタイルシートに書く – zgood

答えて

3

私はDisplayNameForはHTML要素をレンダリングすると考えているので、コントロールにhtml属性を追加すると機能しません。

私はspanでコントロールを折り返し、CSSクラスを追加してから、そこにスタイルを書き込んで管理できるスタイルシートにそのクラスを追加します。

このような何か:

<span class="display-name">@Html.DisplayNameFor(model => model.Adresse)<span>

その後、あなたのCSSスタイルシートであり、あなたの新しいクラスを追加します。

.display-name{ 
    display:inline-block; 
    border: 1px solid #ff0000; 
    background-color:#eee; 
    font-size:15px; 
    /*add more styles ...*/ 
} 
+0

ええ、それはかなり多くの答えです、また、私は '幅'を使用しようとしていたが、私は右のMVCスタイルのプロパティが 'min-width'であることを認識した。 –

-1

実質的に同じ答えはちょっとしたメモだけです。この

使用: @Html.TextBoxFor(p => p.Publishers[0].pub_name, new { @style="width: 1000px" }):1000pxの間のスペースに注意してください。スタイルに属性が1つしかない場合は、セミコロンを使用しないでください。

+0

DisplayNameFor機能、ごめんなさい –

+0

なぜ '@LabelFor()'を使用しないのですか? –

+0

':'と '1000px'の間のスペースは良く見えますが、スタイルのレンダリングを妨げているとは思いません。 'width:1000px;'と 'width:1000px;'は同じです – zgood

0

これは通常、あなたの例で使用したのと同じように、好みのスタイルを含む匿名オブジェクトであるhtmlAttributesプロパティを使用することによって実現されます。

ここしかし問題は、現在、TextBoxForTextAreaForまたは類似したように、実際の要素をレンダリング1とは対照的に、DisplayNameForヘルパーでこれを使用しようとしているということです。

ヘルパーは、それ自身のヘルパーは、あなたがターゲットとするプロパティの実際の名前をレンダリングします。

関連する問題