wake-up-neo.com

so fügen Sie bei Verwendung von Layout Skript-Skript in einer Ansicht hinzu

Ich möchte einen Javascript-Verweis hinzufügen:

<script src="@Url.Content("~/Scripts/jqueryFoo.js")" type="text/javascript"></script>

Wenn ich eine Rasierapparat-Ansicht habe, auf welche Weise kann ich diese Funktion verwenden, ohne sie dem Layout hinzufügen zu müssen (ich brauche sie nur in einer bestimmten Ansicht, nicht alle).

In aspx konnten wir Platzhalter für Inhalte verwenden. Ich habe ältere Beispiele gefunden, in denen aspx in mvc verwendet wurde, aber nicht in der Rasierklassenansicht.

77
dferraro

Je nachdem, wie Sie es implementieren möchten (wenn es einen bestimmten Speicherort gab, an dem Sie die Skripts wollten), könnten Sie einen @section in Ihrem _Layout implementieren, der es Ihnen ermöglicht, zusätzliche Skripts aus der Ansicht selbst hinzuzufügen, während Sie die Struktur beibehalten. z.B.

_Layout

<!DOCTYPE html>
<html>
  <head>
    <title>...</title>
    <script src="@Url.Content("~/Scripts/jquery.min.js")"></script>
    @RenderSection("Scripts",false/*required*/)
  </head>
  <body>
    @RenderBody()
  </body>
</html>

Aussicht

@model MyNamespace.ViewModels.WhateverViewModel
@section Scripts
{
  <script src="@Url.Content("~/Scripts/jqueryFoo.js")"></script>
}

Ansonsten ist das, was Sie haben, in Ordnung. Wenn Sie nichts dagegen haben, dass die Ansicht, die ausgegeben wurde, "inline" ist, können Sie die Deklaration <script> in der Ansicht platzieren.

143
Brad Christie

Wenn Sie Razor View Engine verwenden, bearbeiten Sie die Datei _Layout.cshtml. Verschieben Sie den @ Scripts.Render ("~/bundles/jquery") in der Kopfzeile in den Kopfzeilenabschnitt, und geben Sie den Code für Javascript/jquery wie gewünscht ein:

@Scripts.Render("~/bundles/jquery")
<script type="text/javascript">
    $(document).ready(function () {
        var divLength = $('div').length;
        alert(divLength);
    });
</script>
11
Dilip Nannaware

Sie können die Skript-Tags hinzufügen, wie wir sie in asp.net verwenden, während Sie clientseitige Validierungen wie unten beschrieben durchführen.

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>
<script type="text/javascript" src="~/Scripts/jquery-3.1.1.min.js"></script>
<script type="text/javascript">
    $(function () {
       //Your code
    });
</script>