1 文字下のテキストを返すヘルパーを作成したいと思います。そんな感じ:
S
あ
M
P
L
え
このヘルパーの目的は、1 文字幅の見出しを持つ表を作成することです。下の図でわかるように、これは醜いです。
以下の例は見栄えがします:
次のようなものが欲しいです:
@Html.DisplayVerticalFor(x => x.MyText)
何か案が?
ありがとう。
1 文字下のテキストを返すヘルパーを作成したいと思います。そんな感じ:
S
あ
M
P
L
え
このヘルパーの目的は、1 文字幅の見出しを持つ表を作成することです。下の図でわかるように、これは醜いです。
以下の例は見栄えがします:
次のようなものが欲しいです:
@Html.DisplayVerticalFor(x => x.MyText)
何か案が?
ありがとう。
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」などを追加して、よりすっきりときれいにすることができます。