2010-04-09 10 views
12

Wie kann ich Parameter an die OnSuccess Funktion der Klasse AjaxOptions in ASP.NET MVC übergeben?Wie kann ich Parameter an die OnSuccess-Funktion der AjaxOptions-Klasse in ASP.NET MVC übergeben?

Hier ist mein Code, aber es funktioniert nicht:

<%= Ajax.ActionLink("Delete", 
        "Delete", 
        "MyController", 
        New With {.id = record.ID}, 
        New AjaxOptions With 
        { 
         .Confirm = "Delete record?", 
         .HttpMethod = "Delete", 
         .OnSuccess = "updateCount('parameter')" 
        }) 
%> 

UPDATE

Einstellung der OnSuccess Eigenschaft (function(){updateCount('parameter');}) mein Problem gelöst:

<%= Ajax.ActionLink("Delete", 
        "Delete", 
        "MyController", 
        New With {.id = record.ID}, 
        New AjaxOptions With 
        { 
         .Confirm = "Delete record?", 
         .HttpMethod = "Delete", 
         .OnSuccess = "(function(){updateCount('parameter');})" 
        }) 
%> 

Antwort

10

Sie sollten in der Lage sein zu verwenden ein jQuery-Selektor einen Wert aus einem Feld in der Seite zu füllen:

<%= Ajax.ActionLink("Delete", 
        "Delete", 
        "MyController", 
        New With {.id = record.ID}, 
        New AjaxOptions With 
        { 
         .Confirm = "Delete record?", 
         .HttpMethod = "Delete", 
         .OnSuccess = "updateCount($('#SomeField).val()))" 
        }) 
%> 

einen Blick auch hier: Can I pass a parameter with the OnSuccess event in a Ajax.ActionLink

+0

Vielen Dank für den Hinweis auf diesen Link. Ich hatte diesen Beitrag schon einmal angeschaut, aber eine der Antworten übersehen. –

+0

@Dave, wie kann ich den generierten Anker an die Erfolgsfunktion übergeben? Ich habe 'das' versucht, aber es hat nicht funktioniert. – Shimmy

1

Hier ist ein MVC4 Beispiel. OnBegin, OnSuccess, OnComplete und OnFailure-Funktionen werden verwendet, um meine AJAX-Animationen zu aktivieren/deaktivieren. Jede Funktion übergibt eine Item-ID als Parameter, damit ich meine js-Funktionen für alle meine Ajax-Sektionen wiederverwenden kann. ajaxOnbegin() zeigt ein gif und ajaxOnsuccess versteckt es wieder.

<script> 
@*Ajax Animation*@ 
    $(document).ready(function() { 
     $("#ajaxLoadingGif").hide(); 
    }); 
    function ajaxOnbegin(id) { 
     //show animated gif 
     $(id).show(); 
    } 
    function ajaxOnsuccess(id) { 
     //disable animated gif 
     $(id).hide(); 
    } 
    function ajaxOnfailure(id) { 
     //disbale animated gif 
     $(id).hide(); 
    } 
    function ajaxOncomplete(id) { 
     //disable animated gif 
     $(id).hide(); 
    } 


    </script> 

@Ajax.ActionLink(linkText: " Hi", // <-- Text to display 
        actionName: "getJobCards", // <-- Action Method Name 
        routeValues: new { searchString = ViewBag.searchString}, 
        ajaxOptions: new AjaxOptions{ 
           "#itemId", // <-- DOM element ID to update 
           InsertionMode = InsertionMode.Replace, 
           HttpMethod = "GET", // <-- HTTP method 
           OnBegin = "ajaxOnbegin('#ajaxLoadingGif')", 
              //="ajaxOnbegin" without parameters 
           OnSuccess = "ajaxOnsuccess('#ajaxLoadingGif')", 
           OnComplete = "ajaxOncomplete('#ajaxLoadingGif')", 
           OnFailure = "ajaxOnfailure('#ajaxLoadingGif')" 
           }, 
           htmlAttributes: new { id = ViewBag.ajaxId } 

       ) 
Verwandte Themen