2012-03-27 3 views
0

Ich habe eine Schaltfläche. Nach dem ersten Klick bekomme ich "Button gedrückt!" Bestätigungsmeldung. Wenn ich den Knopf erneut drücke, erhalte ich zweimal Bestätigung. Nach dem dritten Drücken erscheint die Meldung vier Mal. Tatsächlich bekomme ich geometrische Progression. Bitte helfen Sie.MVC3 Erscheinen der Bestätigungsmeldung steigt als geometrische Progression nach jedem Klicken

Ansicht ist.

@{ 
    ViewBag.Title = "Home"; 
    <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script> 
} 
<div id="buttonPressed"> 
    @Ajax.ActionLink("Button", "Index", new AjaxOptions { Confirm = "Button pressed!", UpdateTargetId = "buttonPressed" }) 
</div> 

Controller ist.

public class HomeController : Controller 
    { 
     public ActionResult Index() 
     { 
      return View(); 
     } 
    } 
+0

Eigentlich klingt das wie eine lineare Progression. Geometric wäre 1, 2, 4, 8, ... –

+0

Das Problem ist, dass Sie das 'div' aktualisieren, das die Schaltfläche enthält. – Diego

+0

Ich habe ein Label auf der Seite und Label-Wert wird nach jedem Klick aktualisiert. Und wenn ich keinen Aktionslink im div habe, erscheint das Label zweimal. Deshalb habe ich einen Aktionslink im div. –

Antwort

0

Wenn der Post zurückkommt, ersetzen Sie den Inhalt des buttonPressed div, das den Button selbst enthält. Keine gute Sache.

Außerdem ist es nicht richtig, zurück zu der Index-Methode aufzurufen, die ursprünglich die Ansicht angezeigt hat. Dadurch wird die Seite zusammen mit dem HTML-Code im div neu gerendert, und die gesamte Ansicht wird neu gerendert (einschließlich aller Master-Seiten), was immer wieder passieren wird.

Sie müssen den Aktionsrückruf zu einer anderen Aktionsmethode in Ihrem Controller ändern und dann eine partielle Ansicht von etwas HTML oder einer Zeichenfolge oder etwas anderes zurückgeben.

Verwandte Themen