0

我写了助手

  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)在测试类中:

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

2)在cshtml文件中:

@Html.Test().Trim()

3)试图改变作家设置

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

但是所有这些都没有积极的结果(第三步部分清理代码)。这里有没有办法让html代码没有制表符、空格、字符串结尾等?

4

1 回答 1

1

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

于 2013-09-30T22:33:00.563 回答