我有C#razor*.cshtml模板文件,希望将其用于Angular(5(服务器端渲染。
C#.cs.html代码段:
@helper RenderLookupComponent()
{
<list-lookup
[data]="getLookupData('@Model.LookupSourceType')"
[lookupType]="'@Model.LookupSourceType'">
</list-lookup>
}
在@Model.LookupSourceType">值不包含转义符('\'(之前,一切都很正常,例如当@Model.LookupSource Type='SomeType\'
角度模板解析器错误:
[error]: Template parse errors:
Parser Error: Missing expected ) at column # in [getLookupData('SomeType')]
乍一看,这看起来像是一个普通的问题,实际上可以通过将所有的"\"替换为"\"来解决。(@Model.LookupSourceType.Replace(@"", @"\"
((。
问:但我认为应该有更优雅、更通用的方法来解决这类问题。可以处理不同类型的转义符号的所有可能场景的方法
请分享你的经验
使用HttpUtility.JavaScriptStringEncode(Model.LookupSourceType)
解决了问题