2016-06-11 12 views
1

in meinem Projekt im Versuch, einen modalen Bootstrap zu 1 meiner Ansichten hinzuzufügen, und ich .load() verwenden, um diese Ansicht zu laden, ist die Sache, wenn ich versuche, die Ansicht zu laden, erscheint es nur schwarz, versuchte ich zu verwenden console.log() um die Fehler zu sehen und ich sah diese.load Start neuer Pfad

http://localhost:38212/Desafios/Details/Solucoes/Details?id=14

wenn ich die div klicken Sie auf die modale auszulösen, ich bin in /Desafios/Details, und ich möchte /Solucoes/Details und nicht alle die uRL gehen, I don‘ Ich möchte die .load() URL zu der vorherigen URL hinzufügen, die ich hatte. Wie kann ich das machen?

Hier meine Jquery Funktion

$("#VisualizarSolucao").click(function (event) { 
    var id = $(this).attr("data-id"); 
    $("#modal").load("../Solucoes/Details?id=" + id, function() { 
     $("#modal").modal(); 
    }) 
    event.preventDefault() 
}); 

Ich bin Laden, hier die js in einer externen Datei ist die VisualizarSolucao-ID, die auf dem Click-Ereignis

<div class="col-md-10" style="border-left:2px solid black"> 
    <p style="text-align:left;padding-top:5px"> 
     <a href="" id="VisualizarSolucao" data-id="@i.SolucaoId" style="font-weight:900">@i.SolucaoTitulo</a> 
    </p> 
    <br /> 
    <div class="col-md-offset-4 col-md-8" style="text-align:right"> 
     <text>Criado por <a href="#">@i.User.UserName</a> no dia @i.DataCriacao</text> 
    </div> 
</div> 
+0

immer die UrlHelper Methoden verwenden - '.load ('@ Url.Action ("Details", "Solucoes")', {id: id}, function() {' –

+0

funktioniert nicht immer noch mit dem gleichen Fehler: S –

+0

Ist dieses Skript in der Ansicht oder eine externe Datei? –

Antwort

1

die URL in der .load() genannt wird Funktion müsste "/Solucoes/Details?id=" + id sein, aber Sie sollten immer die Methode @Url.Action() verwenden, um sicherzustellen, dass Ihre URLs korrekt generiert werden.

Da das Skript in einer externen Datei ist, und Rasierapparat-Code wird in externen Dateien nicht analysiert, Sie html

<a href="#" class="VisualizarSolucao" data-url="@Url.Action("Details", "Solucoes", new { id = i.SolucaoId })"> 

Hinweis

ändern, dass die id zu einer (Ihren Erzeugungs duplizieren id Attribute class Namen geändert wird in einer Schleife, die HTML ist ungültig). Sie sollten auch die Inline-Stile entfernen und stattdessen CSS verwenden.

Dann ändern Sie das Skript zu (keine Notwendigkeit für event.preventDefault())

$('.VisualizarSolucao').click(function() { // class name selector 
    var url = $(this).data('url'); // use data(), not attr() 
    $("#modal").load(url, function() { 
     $("#modal").modal(); 
    }) 
}); 
+0

jetzt nicht verstanden es lädt nichts sogar das schwarze Fenster des modalen nicht erscheint:/ –

+0

Natürlich nimmt es an Ihr anderer Code ist korrekt. Setzen Sie einen Breakpoint auf die 'Details()' Methode von 'SolucoesController' - wird sie getroffen? –

+0

URL ist nicht definiert im Skript –

Verwandte Themen