我一直在寻找如何剃刀和JavaScript混合在一起。 我发现是这样的:
<script type="text/javascript">
var currentUser = null;
@if (User.Identity.IsAuthenticated) {
<text>
currentUser = '@User.Identity.Name';
</text>
}
</script>
为什么称为变量currentUser
包围<text></text>
标记? 是什么意思<text>
标记? 如果我们忽略的文本标签,然后任何错误发生的呢?
那么,这是剃刀是如何工作的。 它采用支架和标签开始/结束从生成的HTML differenciate C#代码
当你打开一个支架,它认为它直到代码:
然后,打开的标签将被视为HTML直到@或遇到correspoding关闭标签。 有时候,你想从C#切换到HTML(或爵士),但你不希望添加标签......那么对你特别的标签ID存在。 它不会被渲染,只是在这里要告诉剃刀切换ROM C#中生成的输出
究其原因, <text>…</text>
标签是解决中出现的调音两种语言一起是发生在许多情况下,语义相同的结果含糊不清的问题。
如果你到剃刀语法的C#中指定动态Java脚本逻辑if语句,和你有Java脚本,如果在这些块语句,如何将它区分两者之间的范围内?
问题是:它不能; 赔率是,程序员可以没有。 该<text>…</text>
标签是一种特殊的剃刀块(内C#块只)风格的转义,说:这肯定是(可能)不C#代码,在此块。
事情变得有点冒险,当你意识到,你可以添加内的另一个逃生<text>…</text>
块。 任何事情一样,虽然你会谨慎使用。 如果您遇到了很大的麻烦混合两种,不能找出其中添加文本块,赔率是你不应该使用它(在生产中),直到你更好地理解它。