2013-09-30 92 views
0

我写帮手MVC的Html定制助手切空间

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的符号。 我tryed:

1)在测试类:

return writer.InnerWriter.ToString().Trim(); 

2)在CSHTML文件:

@Html.Test().Trim() 

3)Tryed改变写入器设置

writer.InnerWriter.NewLine = string.Empty; 
writer.NewLine = string.Empty; 

但所有这些都没有积极的结果(第三步部分清理代码)。 这里有没有标签,空格,字符串结束等HTML代码的任何方式?

回答

1

Trim()只会消除前导和尾随空格。改为使用.Replace(" ", string.empty)

0

但是用Replace我会替换所有空格,例如无序列表中的单词之间的空格。有没有其他方法?你对这个空间来自哪里有什么想法吗?

如果我在FireBug中删除前向空间,页面呈现正常。

+0

'.Replace(“”,string.empty)'也没有帮助。 Blaise,谢谢你的试用 – user1820916