javascript - Angular 服务器端呈现模板 (.cshtml) 使用转义符号解析错误

标签 javascript c# html angular razor

我有 C# razor *.cshtml 模板文件,想将其用于 Angular (5) 服务器端渲染。

C# .cshtml 片段:

@helper RenderLookupComponent()
{
    <list-lookup 
          [data]="getLookupData('@Model.LookupSourceType')"
          [lookupType]="'@Model.LookupSourceType'">
    </list-lookup>
}

一切正常,直到 '@Model.LookupSourceType' 值不包含转义符号 ('\'),例如当 @Model.LookupSourceType = 'SomeType\'

Angular 模板解析器错误:

[error]: Template parse errors:
Parser Error: Missing expected ) at column # in [getLookupData('SomeType\')]

乍一看是个普通的问题,其实只要把'\'全部换成'\'就可以解决。 (@Model.LookupSourceType.Replace(@"\", @"\\"))。

问:但我相信应该有更优雅、更通用的方法来解决这类问题。 可以处理不同类型转义符号的所有可能情况的方法

请分享你的经验

最佳答案

使用 HttpUtility.JavaScriptStringEncode(Model.LookupSourceType) 解决了问题

关于javascript - Angular 服务器端呈现模板 (.cshtml) 使用转义符号解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58868319/

相关文章:

javascript - 使用kinetic.js替换HTML5 Canvas 中的图像?

c# - Windows Phone 7 中的 "WebClient.UploadString"方法在哪里?

c# - 仅当 DataGridView 中的 Cell ValueChanged 时如何运行 Run CellEndEdit

c# - 如何检查是否已超过 30 天?

javascript - 如果存在则加载 json 并附加数据,而不是重新创建和覆盖 json 文件

css - 缩小窗口大小时出现空格?

javascript - Jquery 调整 li 大小以适应 ul

javascript - 由格式化程序附加的 jQuery Select2 值可搜索

JavaScript HTML Google Maps API 地理编码服务问题

javascript - 如何在 Javascript/jQuery 中将元素和所有属性作为字符串获取