2013-09-30 93 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