2012-04-10 10 views
0

Das ist meine GesAgence Seite Aktion:Return Erfolgsmeldung nach dem Löschen/Update/erstellen

 public ActionResult GesAgence() 
    { 
     var test = new Models.J2VEntities(); 
     return View(test.agence); 
    } 

Das ist meine Aktion für Deleting ist:

 public ActionResult DeleteAg(string id) 
    { 
     Models.J2VEntities entity = new Models.J2VEntities(); 

     Models.agence model = (from p in entity.agence 
           where p.Idag == id 
           select p).SingleOrDefault(); 

     //Sauvgarde ds la BD 
     entity.agence.DeleteObject(model); 
     entity.SaveChanges(); 
     return View("gesAgence"); 
    } 

Also ich bin wondring wie Succes Nachricht zurückzukehren nach dem Löschen (ich versuchte mit TempData, aber nicht erfolgreich, weil mein gesAgence Modell nicht TempData zurückgeben muss).

+0

Wie rufen Sie diese Löschaktion an? Über JavaScript/Ajax oder von einem Aktionslink? – cecilphillip

+0

Ich verwende actionLink – Chlebta

+0

Html.ActionLink oder Ajax.ActionLink? Man sendet eine Ajax-Anfrage, und man macht eine vollständige Seitenanfrage. Je nachdem, was Sie tun, ändern sich Ihre Optionen – cecilphillip

Antwort

0

Sie können Ajax verwenden, um Ihren Controller von Ihrer Ansichtsseite aus aufzurufen und die Meldung, was auch immer Ihr Controller zurückgegeben hat, anzuzeigen, versuchen Sie etwas wie dieses.

Skript auf Ihrer Ansichtsseite.

function onDeleteAg (id) { 
     var answer = confirm("Are you sure you want to delete AG ?") 
     if (answer) { 
      $.ajax(
       { 
        type: "Get", 
        url: '<%= Url.Action("DeleteAg","YourControllerName") %>', 
        data: { agId: id }, 
        success: function (data) {       
         //HERE--data is the message you that your controller DeleteAg method will return after it's called. you need to do something here to display this message(data) anywhere you want to . something like below. 
         alert(data);       

        }, 
        error: (function() { alert("Error! Ag was not deleted."); }) 
       }); 
     } 
    }; 

Methode auf dem Controller.

public string DeleteAg(string agId) 
    { 
     try{ 

     Models.J2VEntities entity = new Models.J2VEntities(); 

     Models.agence model = (from p in entity.agence 
           where p.Idag == id 
           select p).SingleOrDefault(); 

     //Sauvgarde ds la BD 
     entity.agence.DeleteObject(model); 
     entity.SaveChanges(); 
} 
     catch(Exception ex) 
     { 
      return "AG has not been deleted successfully; 
     } 

     return "AG has been deleted successfully; 
    } 
+0

Ich muss mein actionLink ändern oder nein? – Chlebta

+0

Sie müssen actionLink nicht verwenden. rufen Sie onDeleteAg auf, es ist eine JavaScript-Funktion. Wenn Sie wirklich Actionlink verwenden möchten, müssen Sie actionLink erstellen, um diese JavaScript-Funktion aufzurufen. Überprüfen Sie diesen Thread, um zu sehen, wie. http://stackoverflow.com/questions/1889145/mvc-actionlink-with-javascript –

+0

So rufe ich OnDeleteag: '' – Chlebta

0

können Sie diese Methode über Ajax-Aufruf und JsonResult statt Action, Rückkehr nach Ergebnis Suchen Sie Nachricht an Benutzer zeigen.

public JsonResult DeleteAg(string id) 
{ 
    Models.J2VEntities entity = new Models.J2VEntities(); 

    Models.agence model = (from p in entity.agence 
          where p.Idag == id 
          select p).SingleOrDefault(); 

    //Sauvgarde ds la BD 
    entity.agence.DeleteObject(model); 
    entity.SaveChanges(); 
    var json = new 
      { 
       success = true 
      }; 
    return Json(json); 
} 
+0

Und was ist das Skript, das ich in meiner Ansichtsseite verwenden sollte? – Chlebta

0

Sie können einstellen, Erfolg zu ViewBag

public ActionResult DeleteAg(string id) 
    { 
     Models.J2VEntities entity = new Models.J2VEntities(); 

     Models.agence model = (from p in entity.agence 
           where p.Idag == id 
           select p).SingleOrDefault(); 

     //Sauvgarde ds la BD 
     entity.agence.DeleteObject(model); 
     entity.SaveChanges(); 

     ViewData["Success"] = true; 

     return View("gesAgence"); 
    } 

im Blick

@if(ViewData["Success"] != null && (bool)ViewData["Success"]){ 
    <script>alert("Sucess!");</script> 
} 

Das ist meine Ansicht:

<% if(ViewData != null && ViewData["Success"] != null && (bool)ViewData["Success"]){ %> 
    <script type="text/javascript"> alert("Sucess!");</script> 
<% } %> 
     <div class="clear"> 
       &nbsp; 
      </div> 
      <div id="main"> 
      <h1> Demande preinscrit</h1> 
      <ul class="listing"> 
    <% foreach (var item in Model) { %> 
       <li> 
       <div class="listinfo"> 
        <h3> 
         <%: Html.DisplayFor(modelItem => item.Nomag) %> 
        </h3> 
        <p> 
         <%: Html.DisplayFor(modelItem => item.Idag) %> 
        </p> 
        <span class="price"> <%: Html.DisplayFor(modelItem => item.Adrag) %> <%: Html.DisplayFor(modelItem => item.Vilag) %> <%: Html.DisplayFor(modelItem => item.Gov) %></span> <span class="media">Tel : <%: Html.DisplayFor(modelItem => item.Telag) %> |</span> <%: Html.DisplayFor(modelItem => item.Mailag) %> 
        </div> 
        <div class="listingbtns"> 
        <span class="listbuttons"><%: Html.ActionLink("Bloque", "Bloque", new {id= item.Idag}) %> </span> 
        <span class="listbuttons"><%: Html.ActionLink("Supprime", "DeleteAg", new { id = item.Idag })%></span> 
        </div> 
        <div class="clear"> 
        &nbsp; 
        </div> 
       </li> 
    <% } %> 

Ich habe diesen Fehler: System.NullReferenceException: Object reference not set to an instance of an object auf dieser Linie <% foreach (var item in Model) { %>.

+0

Ich benutze ASPX nicht Razor. mit dem was ich ersetze 'Viewbag' – Chlebta

+0

ich ändere mit' ViewData' – Yorgo

+0

thanks, aber in meiner Aktion 'DeleteAg' habe ich' return view ("gesagence") 'und nehmen Sie Blick auf' gesAgence' Aktion wird feststellen, dass ich nicht kann Führen Sie diese 'return-Ansicht (ViewData [" Success "])' in meiner Löschaktion – Chlebta

Verwandte Themen