以下标记是否不正确,还是MVC4中Razor引擎中的错误?无论哪种方式,什么是最好的解决方法?
显示 View1.cshtml 的全部内容。它编译得很好,但Intellisense错误突出显示很烦人。 (包含在图像中,以便您了解VS11如何拒绝语法。)
不接受@:
语法(而不是<text></text>
)。
答案 0 :(得分:5)
将JavaScript与Razor混合起来有点棘手。就个人而言,我发现使用Razor @function
或Razor custom @helper
来分离这两个人更容易。
这是一个简单的例子:
<script type="text/javascript">
function btn_clicked() {
@generateMyJavaScript()
}
</script>
<a href="javascript:void(0)" onclick='btn_clicked()'>Click on me</a>
@functions {
private MvcHtmlString generateMyJavaScript()
{
string jsBuilder = string.Empty;
if (true)
jsBuilder = "alert('Hey!');";
return MvcHtmlString.Create(jsBuilder);
}
}
答案 1 :(得分:0)
我也注意到语法荧光笔的奇怪行为。这不是一个真正的答案,但是:
(想把这个写成评论,但没有找到办法做到这一点,对不起该次辩论)