Sie könnten ein verstecktes Feld innerhalb des Formulars verwenden:
%Vor%oder übergeben Sie es in der Aktion des Formulars:
%Vor%Ein wenig spät zur Party, aber ich fand eine einfachere Lösung für das, was ich denke, ist ein ziemlich häufiger Anwendungsfall, wo Sie auf GET ("Sind Sie sicher, dass Sie wollen bla bla bla ? ") und dann mit denselben Argumenten auf POST reagieren.
Die Lösung: Verwenden Sie optionale Parameter . Keine Notwendigkeit für irgendwelche versteckten Felder und so.
Hinweis: Ich habe das nur in MVC3 getestet.
%Vor% Abschließend können Sie string.Empty anstelle von ""
nicht verwenden, da es sich um eine Kompilierzeitkonstante handeln muss. Und es ist ein großartiger Ort, um lustige Kommentare für jemand anderen zu finden:)
Mein Ansatz besteht nicht darin, einen unbenutzten Parameter hinzuzufügen, da dies scheinbar Verwirrung stiften würde und im Allgemeinen eine schlechte Praxis ist. Stattdessen füge ich "Post" an meinen Aktionsnamen an:
%Vor%Der einfachste Weg für eine solche einfache Situation besteht darin, dem Absenden-Button einen Namen zu geben und einen Check-in-Vorgang durchzuführen, wenn er einen Wert hat oder nicht. Wenn es den Wert hat, dann postet es Aktion, wenn nicht, dann erhält es Aktion:
%Vor%Für Cs können Sie get und post-Controller-Methoden in einem kombinieren:
%Vor%Tags und Links asp.net-mvc asp.net-mvc-2 c#-4.0 http-post http-get