我写了帮手
public static class TestHelper
{
public static string Test(this HtmlHelper helper)
{
var writer = new HtmlTextWriter(new StringWriter(), string.Empty);
//writer.InnerWriter.NewLine = string.Empty;
//writer.NewLine = string.Empty;
writer.RenderBeginTag(HtmlTextWriterTag.Ul); //<ul>
for (int i = 0; i < 5; i++ )
{
RenderRow(helper, writer, i);
}
writer.RenderEndTag(); //</ul>
return writer.InnerWriter.ToString();
}
private static void RenderRow(HtmlHelper helper, HtmlTextWriter writer, int i)
{
writer.RenderBeginTag(HtmlTextWriterTag.Li);
writer.Write(i);
writer.RenderEndTag();
}
}
并以相同的方式使用它:
@Html.Test()
但结果我在浏览器中看到了html标签。问题是第一个标记之前的空格:
<ul> <li>0</li><li>1</li><li>2</li><li>3</li><li>4</li> </ul>
在“ul”之前有一个代码为020h的符号。 我试过了:
1)在Test类中:
return writer.InnerWriter.ToString().Trim();
2)在cshtml文件中:
@Html.Test().Trim()
3)尝试更改作家设置
writer.InnerWriter.NewLine = string.Empty;
writer.NewLine = string.Empty;
但所有这些都没有积极的结果(第三步部分清理代码)。 有没有任何方法可以使用没有制表符,空格,字符串结尾等的HTML代码?
答案 0 :(得分:1)
Trim()
只会消除前导和尾随空格。请改用.Replace(" ", string.empty)
。
答案 1 :(得分:0)
但是使用Replace我将替换所有空格,例如无序列表中的单词之间的空格。还有其他方法吗?你知道这个空间来自哪里吗?
如果我在FireBug中删除了前向空格,页面会正确呈现。