2017-06-27 2 views
0

Ich versuche, eine Schaltfläche zu erstellen, die eine Aktion einer anderen Form verwendet. Von der Seite Edit möchte ich, dass Benutzer die Möglichkeit haben, auf eine Schaltfläche zu klicken, um die Aktion Delete auszuführen. Auf diese Weise kann ich die Notwendigkeit für die Delete Ansicht entfernen.HTML-Schaltfläche kann keine andere Aktion verwenden

Hier ist meine Schaltfläche:

<input type="submit" id="yesBtn" value="Yes" class="btn btn-default" style="float:left; background-color:Green; color: white" /> 

ich ein paar Dinge ausprobiert haben:

@using (Html.BeginForm("Delete", "GroupsController", routeValues: new { id = Model.GroupId }, method: FormMethod.Post)){ 
<input type="submit" id="yesBtn" value="Yes" class="btn btn-default" style="float:left; background-color:green; color: white" />} 

dies die Standard Edit Aktion des Formulars verwendet; mit

Einwickeln

<form action="~/Views/Groups/Delete.cshtml" method="post"></form>

funktioniert auch nicht, und ich habe auch versucht, ein onclick Ereignis ohne Erfolg.
Ich denke, das BeginForm wird aus irgendeinem Grund nicht erkannt.

Hier ist mein Aktionscode, ich versuche, in der Model.GroupId weitergeben müssen:

// POST: AspNetGroups/Delete/5 
[HttpPost, ActionName("Delete")] 
[ValidateAntiForgeryToken] 
public ActionResult DeleteConfirmed(int id) 
{ 
    AspNetGroup aspNetGroup = db.AspNetGroups.Find(id); 
    db.AspNetGroups.Remove(aspNetGroup); 
    db.SaveChanges(); 
    return RedirectToAction("Index"); 
} 

Hier ist der relevante Teil meiner Ansicht ist:

@model ContactManager.Models.AspNetGroup 
... 
@using (Html.BeginForm()) 
{ 
    @Html.AntiForgeryToken() 
    <div class="form-horizontal"> 
    ... 
     <div id="myModal" class="modal"> 
      <div class="modal-content"> 
       <div class="modal-header"> 
        <span class="close">&times;</span> 
        <h2>Delete Group</h2> 
       </div> 
       <div class="modal-body"> 
        <p>You are about to delete group placeholder.</p> 
        <p>Are you sure you want to delete it?</p> 
       </div> 
       <div class="modal-footer"> 
        <form action="~/Views/Groups/Delete.cshtml" method="post"> 
         <input type="submit" id="yesBtn" value="Yes" class="btn btn-default" style="float:left; background-color:green; color: white" /> 
        </form> 
        <input type="button" id="noBtn" value="No" class="btn btn-default" style="float:left; background-color:red; color: white" /> 
       </div> 
      </div> 
     </div> 
     ... 
    </div> 
} 
+0

u sicher Controller Name ist GroupsController? "Controller" wird normalerweise weggelassen. – Nico

+0

@Nico Ich denke du hast Recht! Aber es hat mein Problem nicht gelöst (der 'Delete' Button benutzt immer noch die 'Edit' Aktion nachdem er dies geändert hat). Danke für Ihre Hilfe. –

Antwort

0

Es ist nicht gültig ist Formular in Form zu verwenden in html. Klicken Sie auf die Schaltfläche "Löschen", um das von Html.BeginForm() Helper generierte äußere Formular zu senden. Sie sollten also die Schaltfläche zum Löschen als Verknüpfung verwenden oder diese innere Form außerhalb der äußeren Form verwenden.

+0

Dank so viel, ich fing an zu denken, dass dies der Fall auch nach einigen Nachforschungen war, aber Sie haben es bestätigt. Schätze die Hilfe und vor allem einen Vorschlag. –

Verwandte Themen