当我混合剃刀和JS并使用& lt; / text>
本文关键字:text lt 混合 剃刀 JS | 更新日期: 2023-09-27 18:14:07
这个问题是混合Razor和Javascript代码这个问题的结语,在那里我学习了这个语法:
@if (foo)
{
// C# code
<text>
// JS Code
</text>
}
它工作得很好,直到今天,当我在<text></text>
中使用一个JS正则表达式:
$('#bar').html(boo.replace(/<br(['/ ]*)>/g, "'r'n"));
它抛出一个黄页,告诉我br(
有一个问题,无法分析。
是否有内联的方式来处理它?
(取代我之前的答案)
我在MVC视图中测试了这段代码,它可以工作:
<div id="bar" style="border: 1px solid black">
Dummy content (should be replaced)
</div>
<script type="text/javascript">
var boo = "<span>hello<br />world</span>";
var symbolLT = "<";
@if (1 == 1)
{
// C# code
<text>
var regex = new RegExp(symbolLT + "br(['/ ]*)>", "g");
$('#bar').html(boo.replace(regex, "'r'n"));
</text>
}
</script>
技巧是将"<"
字符从<text></text>
块中分离出来,和使用new RegExp()
。可能比普通的内联表达式可读性差一点,但它确实可以工作。
或者您可以简单地在页面的前面创建正则表达式,所以在<text></text>
块之外,然后在里面使用它。