1

1 文字下のテキストを返すヘルパーを作成したいと思います。そんな感じ:

S

M

P

L

このヘルパーの目的は、1 文字幅の見出しを持つ表を作成することです。下の図でわかるように、これは醜いです。

ここに画像の説明を入力

以下の例は見栄えがします:

ここに画像の説明を入力

次のようなものが欲しいです:

@Html.DisplayVerticalFor(x => x.MyText)                                            

何か案が?

ありがとう。

4

1 に答える 1

0

HTMLヘルパーDisplayVerticalを作成できます。(私はhtmlヘルパーを作成する方法のステップを追加していません)。DisplayVerticalは、最初にテキストを文字配列に分割し、各文字をdivまたはその他のブロックレベル要素内にラップします。これらの要素は、目的の場所に挿入できます。DisplayVerticalForの実装は、次のようになります。

public static MvcHtmlString DisplayVertical (this HtmlHelper helper, string text)
{
     string OutputString = "";
     string assembleString = "<div>{0}</div>";
     char[] textarr = text.ToCharArray();

     foreach( char a in textarr )
     {
         OutputString += String.Format(assembleString, a);
     }

     return new MvcHtmlString(OutputString);
}

and in razor it will placed like this :
<div class="style-to-adjust-width-n-height"> @Html.DisplayVertical ("Sample") </div>

この@Html.DisplayVerticalFor(x => x.MyText)のようなこのhtmlヘルパーにラムダ式を渡したい場合は、ラムダ式解析コードを追加してテキストを見つける必要があります。最後に、これは非常に大まかなコードですが、「TagBuilder」などを追加して、よりすっきりときれいにすることができます。

于 2012-05-06T09:16:41.360 に答える