我在Web项目中使用资源文件,有时候我会使用带有html编码的重音字母和aphostrophes。
所以不是这个
Errore: non c'è nessun itemKey definito. L'esecuzione della pagina verrà interrotta..
我看到了这个
Errore: non c'è nessun itemKey definito. L'esecuzione della pagina verrà interrotta..
我知道Html.Raw()
可以做到这一点,但我想知道是否有一些选项可以在web配置中设置以跳过默认的转义?否则我将被迫在任何地方添加Html.Raw()
我以这种方式添加资源:
@(WmXRexManager.WebResxManager.GetString<SharedVerificationResx>(
() => SharedVerificationResx.ErrorNoItemKey));
WebResxManager
和GetString<T>()
方法无关紧要,因为在调试时正确检索了资源字符串。
答案 0 :(得分:2)
它没有明确说明,但我想知道字符串被转义的上下文。
如果您将此表达式用作常规HTML内容,则转换是正确的。 (但你不需要结束分号)
我的猜测是(假设使用某些JS错误处理输出错误消息)您在JavaScript中呈现字符串,并且您需要区分HTML编码和JavaScript编码,因为它们在某些情况下有所不同。
我使用HtmlHelper扩展方法
[^(<any_tag>)] match a single character not present in the list below
(<any_tag>) a single character in the list (<any_tg>) literally (case insensitive)
允许简单地编写 public static IHtmlString JsString<TModel>(this HtmlHelper<TModel> html, string s)
{
return html.Raw(HttpUtility.JavaScriptStringEncode(s));
}
并将JavaScript字符串转义(当然,在JS字符串引号内)。