创建一个显示垂直字符的帮助器

时间:2012-05-05 19:57:54

标签: asp.net-mvc

我想创建一个帮助器,将一个字符返回另一个字符。这样的事情:

取值

A

中号

P

电子

这个助手的目的是让一个表格的标题宽度只有1个字符。如下图所示,这很难看:

enter image description here

下面的示例看起来不错:

enter image description here

我想要像:

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

有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分: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>

如果你想将一个lambda表达式传递给这个html帮助器,就像这个@ Html.DisplayVerticalFor(x =&gt; x.MyText)那么你需要添加lambda表达式解析代码来找出文本。 最后,这是一个非常粗略的代码,但您可以添加“TagBuilder”等,使其更整洁干净。