希望有人可以帮忙解决这个问题。这让我很头疼。
只要我的某个模板包含一个电子邮件地址,并且在地址的用户部分末尾包含连字符(例如user-@domain.com),RazorEngine就会抛出一个奇怪的错误。错误很长,对动态模型为什么不起作用等有很好的解释,但相关部分是
The name 'domain' does not exist in the current context.
当我将电子邮件地址更改为不具有相同 - @结构的电子邮件地址时,我不会使用相同的模板获取此信息,因此它肯定与RazorEngine解析它的方式有关。似乎特定的序列导致RazorEngine读取@作为剃刀命令的开始。
我试过更换' - '使用HTML实体-但结果是一样的。有没有其他人看过这个或有没有人知道我可以尝试的任何其他解决方法?
答案 0 :(得分:2)
问题不仅仅是连字符,问题是 - @符号。它正在翻译,就像你传递变量"域"在你的模型中,找不到它并且吓坏了。你需要逃避它,有几种方法可以这样做,也许如果你展示你的代码,那么我们可以建议采取哪条路线。最常见的是通过使用@ Html.Raw(" treaviseacton-@gmail.com")等来解决这个问题。
我可以在任何地方找到评论和文档,例如使用hc数据属性的下划线(即数据测试应该用剃刀编写为data_test)但是对于我的生活,我从来没有能够在任何地方找到任何文档的原因连字符按原样处理。