it-swarm.com.de

Wie erstelle ich das Bestätigungsfeld in mvc controller?

Ich muss das Bestätigungsfeld in mvc controller erstellen. Mit diesem Ja- oder Nein-Wert muss ich die Aktion in meinem Controller ausführen. Wie machen wir das?

Beispielcode:

    public ActionResult ActionName(passing value)
        {
             // some code 
             message box here
               if (true)
                     { true code}
              else { else code}
       }
11
user279stack1

Sie können kein Bestätigungsfeld in Controller erstellen, aber in einer Ansicht mit JQuery-Dialogfeld "Ja". Der Controller befindet sich bereits im Server, sodass keine Benutzereingriffe vorgenommen werden. Ihre Ansicht ist der Ort, an dem der Benutzer Optionen auswählen, Informationen eingeben und auf die Schaltfläche ... klicken kann. Sie können die Schaltfläche durch Klicken abbrechen, um dieses Dialogfeld anzuzeigen, und den Beitrag nur dann senden, wenn die button "Yes" wird angeklickt. JQuery Dialog benötigt (jquery.js, jquery-ui.js, jquery.ui.dialog.js) Skripts, die auf Ihrer Seite referenziert werden.

Beispiel:

$(function(){
    $("#buttonID").click(function(event) {
        event.preventDefault();
        $('<div title="Confirm Box"></div>').dialog({
            open: function (event, ui) {
                $(this).html("Yes or No question?");
            },
            close: function () {
                $(this).remove();
            },
            resizable: false,
            height: 140,
            modal: true,
            buttons: {
                'Yes': function () {
                    $(this).dialog('close');
                    $.post('url/theValueYouWantToPass');

                },
                'No': function () {
                    $(this).dialog('close');
                    $.post('url/theOtherValueYouWantToPAss');
                }
            }
        });
    });
});
3
TiagoBrenck

Sie können dies mit ActionLink tun

@Html.ActionLink(
    "Delete", 
    "DeleteAction", 
    "Product", 
    new { confirm = true, other_parameter = "some_more_parameter" }, 
    new { onclick = "return confirm('Do you really want to delete this product?')" })

Wenn der Benutzer bestätigt, wird der Link-Parameter an die Controller-Aktionsmethode übergeben.

public ActionResult DeleteAction(bool confirm, string other_parameter)
{
    // if user confirm to delete then this action will fire
    // and you can pass true value. If not, then it is already not confirmed.

    return View();
}

Update

Sie können das Meldungsfeld nicht auf der Controllerseite anzeigen. Sie können dies jedoch wie folgt tun

public ActionResult ActionName(passing value)
{
     // some code 
     message box here
     if (true){ ViewBag.Status = true }
     else { ViewBag.Status = false}

     return View();
}

Und sehen 

<script type="text/javascript">
function() {
    var status = '@ViewBag.Status';
    if (status) {
        alert("success");
    } else {
        alert("error");
    }
}
</script>

Aber all diese Codes sind nicht elegant. Dies ist die Lösung Ihrer Szenerie. 

5

Ja, Sie können dies mit @Html.ActionLink tun, wie AliRıza Adıyahşi kommentiert hat.

Abonnieren Sie das onclick-Ereignis des @Html.ActionLink

Hier ist die Implementierung:

@Html.ActionLink("Click here","ActionName","ControllerName",new { @onclick="return Submit();"})

Und in Javascript schreiben Sie das Feld confirm.

<script type="text/javascript">
function Submit() {
        if (confirm("Are you sure you want to submit ?")) {
            return true;
        } else {
            return false;
        }
    }
</script>

Bearbeiten

Versuchen Sie es so:

<script type="text/javascript">
    function Submit() {
            if (confirm("Are you sure you want to submit ?")) {
                document.getElementById('anchortag').href += "?isTrue=true";
            } else {
                document.getElementById('anchortag').href += "?isTrue=false";
            }
            return true;
        }
</script>

@Html.ActionLink("Submit", "Somemethod", "Home", new { @onclick = "return Submit();", id = "anchortag" })

Führen Sie nun in Ihrem Controller einige Operationen aus, die auf der isTrue-Abfragestring basieren 

public ActionResult Somemethod(bool isTrue)
        {
            if (isTrue)
            {
                //do something
            }
            else
            {
                //do something
            }
            return View();
        }
5

Ich kann bestätigen, dass die Lösung von AliRıza Adıyahşi gut funktioniert.

Sie können die Nachricht auch anpassen. In meinem Fall verwenden wir MVC und Razor, also könnte ich folgendes tun:

<td>
@Html.ActionLink("Delete", 
    "DeleteTag", new { id = t.IDTag }, 
    new { onclick = "return confirm('Do you really want to delete the tag " + @t.Tag + "?')" })
</td>

Die zeigte einen Dialog mit einem bestimmten Namen darin. Es könnte auch möglich sein, dem Bestätigungsdialog einen Titel zu geben, den Sie noch nicht versucht haben.

1
Maxcelcat
  <a href="@Url.Action("DeleteBlog", new {id = @post.PostId})" class="btn btn-sm btn-danger" onclick="return confirm ('Are you sure want to delete blog?');">
                                <i class="glyphicon glyphicon-remove"></i> Delete

0
sachin wankhade