在MVC5 Razor视图中调用JavaScript函数

在MVC5 Razor视图中调用JavaScript函数,javascript,jquery,razor,asp.net-mvc-5,Javascript,Jquery,Razor,Asp.net Mvc 5,我在另一篇文章中看到,您可以在razor代码中调用JavaScript函数,如下所示: @:FunctionName() 但对我来说,这只输出实际的单词FunctionName 以下是我的看法: @model PriceCompare.Models.QuoteModel @{ ViewBag.Title = "Quote"; } <h2>Quote</h2> @if (@Model.clarify == true) { // do drop dow

我在另一篇文章中看到,您可以在razor代码中调用JavaScript函数,如下所示:

@:FunctionName()
但对我来说,这只输出实际的单词FunctionName

以下是我的看法:

@model PriceCompare.Models.QuoteModel

@{
    ViewBag.Title = "Quote";
}

<h2>Quote</h2>

@if (@Model.clarify == true)
{
    // do drop down loic
    @:ShowClarify();
}
else
{
    // fill quote
    @:ShowQuote();
}
<div class="clarify">

    You can see the clarify div
</div>
<div class="quote">

    You can see the quote div
</div>

@section head {

    <script type="text/javascript">

        $(document).ready(
            function ShowQuote() {
                $(".quote").show();
            },
            function ShowClarify() {
                $(".clarify").show();
            }
        );

    </script>
}

是因为我把它嵌套在了一个“@if”中吗?无论如何,围绕这一点?

您需要将javascript放在一个标记中,并且需要调用其范围内的函数:

<script type="text/javascript">

    $(document).ready(
        function ShowQuote() {
            $(".quote").show();
        },
        function ShowClarify() {
            $(".clarify").show();
        }

        @if (@Model.clarify == true)
        {
            // do drop down loic
            ShowClarify();
        }
        else
        {
            // fill quote
            ShowQuote();
        }
    );

</script>

如果要向JavaScript函数传递任何参数,则必须用引号将其括起来

foreach (var item in files)
    {
        <script type="text/javascript">
            Attachment(**'@item.FileName'**, **'@item.Size'**);
        </script>  
    } 

谢谢语法是一种东西吗??它被终止了吗?@:语法只是告诉Razor将下面的内容视为纯文本。在代码块的上下文中,这对于防止Razor试图在C/VB上下文而不是JavaScript上下文中运行FunctionName方法是必要的,因为它实际上存在于JavaScript上下文中。@Guerrilla我没有把它放在Visual Studio中,因此,在javascript函数调用之前,您可能仍然需要@:在前面。我相信它将需要@:在前面,从我刚才尝试的内容来看,所以@:showClearify;及:ShowQuote ;;您应该使用代码格式选项选择代码,Ctrl-k以确保您的代码以您希望的方式显示在您的答案中。另外,最好在你的例子中使用问题中的一些东西,使你的意思更清楚。