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

Jac*_*ack 7 javascript c# asp.net-mvc jquery asp.net-mvc-4

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

@section script
{
    <script type="text/javascript">
        $(document).ready(function () {
            @if (TempData["Message"] != null)
            {
                showNotification("'" + TempData["Message"].ToString() + "'");
            }
        });
    </script>
}
Run Code Online (Sandbox Code Playgroud)

它说不showNotification存在.它认为这是一个C#代码,它是一个javascript函数.请问任何人请告诉我如何解决此错误?谢谢!

Mar*_*tin 16

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

@section script
{
    <script type="text/javascript">
        $(document).ready(function () {
            @if (TempData["Message"] != null)
            {
                <text>showNotification('@TempData["Message"].ToString()');</text>
            }
        });
    </script>
}
Run Code Online (Sandbox Code Playgroud)


Ely*_*Ely 6

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