web-dev-qa-db-fra.com

Appel de la fonction JavaScript dans la vue MVC 5 Razor

J'ai vu dans un autre article que vous pouvez appeler une fonction JavaScript dans votre code de rasoir comme ceci:

@:FunctionName()

Pour moi, cela ne génère que les mots FunctionName()

Voici mon avis:

@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>
}

Est-ce parce que je l'ai imbriqué dans un "@if"? En tout cas autour de ça?

6
Guerrilla

Vous devez placer votre javascript dans une balise <script>, et vous devez appeler les fonctions comprises dans leur portée:

<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>
11
jrummell

Si vous transmettez un paramètre à la fonction JavaScript, vous devez le mettre entre guillemets ('').

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