Wie erstelle ich ein httppost immer gleichen Parametern von httpget?
Ich habe einen controller, um zu zeigen, ein Modell (Benutzer) und möchten, um einen Bildschirm zu erstellen, nur mit einer Taste zu aktivieren. Ich möchte nicht die Felder in das Formular. Ich habe bereits die id in der url. Wie kann ich dies erreichen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie ein verstecktes Feld in das Formular:
oder ihn in die Aktion des Formulars:
[ActionName("Index")]
zusammen mit der[HttpPost]
- Attribut, um diese Aktion zugänglich mit dem gleichen Namen wie die Aktion zu ERHALTEN, oder fügen Sie einige dummy-action-parameter.Verwenden [ActionName] - Attribut - auf diese Weise können Sie die URLs, die scheinbar auf der gleichen Position aber verschiedene Aktionen ausführen, abhängig von der HTTP-Methode:
Alternativ können Sie die HTTP-Methode im code:
Etwas spät zur party, aber ich fand eine einfachere Lösung zu dem, was ich denke, ist ein ziemlich allgemeiner Gebrauch-Fall, wo Sie prompt auf GET ("sind Sie sicher, dass Sie wollen bla bla bla?") und dann handeln POST mit dem gleichen argument(s).
Die Lösung: verwenden Sie optionale Parameter. Keine Notwendigkeit für irgendwelche hidden Felder und so.
Anmerkung: ich habe nur getestet, in MVC3.
Auf einer abschließenden beachten Sie, dass Sie können nicht verwenden Sie string.Leere anstelle von
""
denn es muss eine compile-Zeit-Konstante. Und es ist ein großartiger Ort, um lustige Kommentare für jemand anderen zu finden 🙂Mein Ansatz ist nicht, fügen Sie eine unbenutzte parameter wie das scheint, wie es würde zu Verwirrung führen, und ist im Allgemeinen eine schlechte Praxis. Stattdessen, was ich tun müssen, ist fügen Sie "Post" zu meinem Namen für die Aktion ein:
Der einfachste Weg für solch einfache situation ist, einen Namen zu geben, um submit-button und check-in Aktion, wenn es Wert hat oder nicht.
Wenn Sie den Wert, dann ist es Post-Aktion, wenn nicht, dann ist es die Aktion zu Erhalten :
Für Cs, die Sie kombinieren können get-und post-controller-Methoden-in-one: