jquery
  • asp.net-mvc
  • url-action
  • 2016-05-24 5 views 0 likes 
    0

    Ich arbeite an einem MVC Projekt und ich habe versucht, einige Parameter an meine Steuerung in JQuery mit @Url.Action zu senden.Fehler beim Senden von Parametern an den Controller über @ Url.Action in JQuery

    HTML-Code:

    <button class="btn btn-white btn-sm demo1" data-id='@item.TeamID'>Delete</button> 
    

    JQuery-Code:

    $(document).ready(function() { 
         $('.demo1').click(function (event) { 
          swal({ 
           title: "Are you sure?", 
           text: "You will not be able to recover this team!", 
           type: "warning", 
           showCancelButton: true, 
           confirmButtonColor: "#DD6B55", 
           confirmButtonText: "Yes, delete it!", 
           closeOnConfirm: false 
          }, function() { 
           var data = event.data; 
           var id = data.id; 
           var url = '@Url.Action("Delete", "Teams", new { id = "__param__" })'; 
           window.location.href = url.replace('__param__', encodeURIComponent(id)); 
    
           swal("Deleted!", "Your team has been deleted.", "success"); 
          }); 
         }); 
        }); 
    

    jedoch die Delete-Methode in den Teams Controller wird nicht ausgelöst wird. Fehle ich etwas?

    UPDATE: Die HTML-Taste innerhalb einer foreach Schleife gelegt wird:

    @foreach (var item in Model) 
    { 
        <tr> 
          <td> 
           @Html.DisplayFor(modelItem => item.TeamName) 
          </td> 
          <td> 
           @Html.DisplayFor(modelItem => item.TeamInits) 
          </td> 
          <td> 
           @Html.ActionLink("Edit", "Edit", new { id = item.TeamID }, new { @class = "btn btn-white btn-sm" }) 
           <button class="btn btn-white btn-sm demo1" data-id='@item.TeamID'>Delete</button> 
          </td> 
         </tr> 
    } 
    
    +0

    Sie binden den Ereignishandler mit der Klasse 'demo3' ein – Satpal

    +0

    Leider habe ich beim Kopieren des Codes einen Fehler gemacht. In der Tat baue ich einen Event-Handler mit der Klasse demo1. Ich werde die Frage aktualisieren – Hanady

    Antwort

    1

    Verwenden HTMLElement.dataset Eigenschaft oder .data() den benutzerdefinierten data-* Präfix Attributwert zu lesen.

    $(document).ready(function() { 
        $('.demo1').click(function (event) {    
         var id = this.dataset.id; 
         //OR 
         var id = $(this).data('id'); 
    
         //Rest of the code 
         swal(); 
        }); 
    }); 
    
    +0

    'var id = $ (this) .data ('id');' arbeitete für mich, aber die ID wird als null an den Controller zurückgegeben. Bitte beachten Sie, dass der HTML-Button innerhalb einer foreach-Schleife platziert ist. Überprüfen Sie die aktualisierte Frage. – Hanady

    +0

    Vergiss meinen Kommentar. Es funktioniert gut. Vielen Dank. – Hanady

    0

    Ich versuche normalerweise den folgenden Code-Trick. Wenn so etwas schief geht.

    Fügen Sie den folgenden Code in Sie Global.asax.cs Datei und Put Debugger innerhalb der Methode, so dass es ausgelöst wird, wenn je Ausnahme auftritt.

    protected void Application_Error(object sender, EventArgs e) 
    { 
        Exception exception = Server.GetLastError(); 
        string ex = exception.Message; // Here you will get to know what is going wrong 
    } 
    

    Die Meldung Ausnahme oder der Stack-Trace wird die genügend Informationen Details zur Verfügung stellen, die Fehler zu beheben.

    Obwohl, wenn seine Anfrage von Jquery/Razor Html Seite Fehler haben Sie genug Informationen.

    Hoffe, das hilft !!!

     Verwandte Themen

    • Keine verwandten Themen^_^