使用Nancy-classes通过Razor Helper编码HTML

时间:2014-01-14 02:43:55

标签: c# razor nancy

更新:使用伪代码中的语句添加Nancy以反映非ASP.NET使用情况。

我目前正在做类似的事情:

using Nancy.Helpers;

// ...

public static IHtmlString DoSomething<T>(this HtmlHelpers<T> helper) {
    return new NonEncodedHtmlString(HttpUtility.HtmlEncode("..."));
}

用于编码HTML。但是,将编码值传递给NonEncodedHtmlString类感觉不对,但我没有看到任何其他类可用。是否有一些我想念的Nancy特定的东西?

注意:我希望找到一个免费的EncodedHtmlString类,它会接受一个字符串并返回其编码版本。

注意2:由于没有特殊原因(此时只是个人偏好),我试图避免使用System.Web / System.Web.Mvc来处理编码,而只依赖于Nancy - 班。

1 个答案:

答案 0 :(得分:0)

在南希:

NonEncodedHtmlString类不会在实例化时对参数进行编码。

EncodedHtmlString类将在实例化时对参数进行编码。

我同意你的看法,感觉有些不对劲。

请参阅here

    public EncodedHtmlString(string value)
    {
        this.encodedValue = HttpUtility.HtmlEncode(value);
    }


    public NonEncodedHtmlString(string value)
    {
        this.value = value;
    }

此外,您尝试避免使用System.Web是合理的,因为Nancy会定位.Net客户端配置文件,如果您想要定位它。

有些人可能会争辩

  

从.NET Framework 4.5开始,客户端配置文件已经存在   已停止使用,只有完整的可再发行软件包可用。

然而,如果微软本身不使用它,那么为什么要使用System.Web?{/ 1}}

}