asp.net mvc 4 javascript里面的razor block抛出错误

这是我的剃刀代码,它会抛出错误:

@section script {  $(document).ready(function () { @if (TempData["Message"] != null) { showNotification("'" + TempData["Message"].ToString() + "'"); } });  } 

它说showNotification不存在。 它认为这是一个C#代码,它是一个javascript函数。 有人可以告诉我如何解决这个错误? 谢谢!

在它周围抛出一个text标签,因为编译器认为你的JavaScript是Razor语法。 执行此操作时,您需要在TempData调用中添加@

 @section script {  } 

除了@Martin的回答,您还可以在showNotification调用前放置@:。 @:语法告诉Razor将该单行视为HTML,其中告诉Razor将文本标记内的任何内容视为HTML(对于多行很有用,其中@:适用于单行)。