.Net Core MVC Razor输出字符串方法(javascript中嵌入razor)
有时我们需要在javascript 中使用Razor输出字符串,由于javascript 中可能含有类似于this的关键字,会被识别为 后端关键字,这样我们就需要加上text标签进行处理
因为 在 @if 的代码块里,已经从内容模式变为编译模式,编译器会默认 {} 里的代码全是 razor
通过使用<text>这个伪元素来强制Razor从编译模式返回到内容模式:
<script type="text/javascript"> @{var contents = smodel != null ? Html.Raw(JsonConvert.SerializeObject(new { name = smodel.Name, key = smodel.Key })) : null; } @if (smodel != null) { <text> this.form = @contents; </text> } </script>
@:表示后面直接输出字符串
<text></text>表示里面输出的是字符串
两种方式可以任选一种,注意<text>不是html标签,它是razor语法中专门用来输出字符串的