Ich habe eine Aktion, die ein komplexes Objekt als Eingabe nimmt. Ich möchte in der Lage sein, einen der Werte entweder mit POST-Daten oder mit der Abfragezeichenfolge in einer GET-Anforderung zu füllen. Das funktioniert gut.MVC5 - Wie man weiß, ob eine Aktionseingabe vollständig leer war
Ich möchte auch einen Standardwert bereitstellen, wenn keine Benutzereingabe bereitgestellt wurde, jedoch funktioniert dies nicht, da der Filter nie null ist, auch wenn keine querystring-Parameter von einer GET-Anforderung vorhanden waren. Was stattdessen passiert, ist, MVC ruft nur den Standardkonstruktor des Modells auf, ohne irgendwelche Eigenschaften zu setzen, anstatt mir eine Null zu geben.
public ActionResult Index(DataFilterInput filter = null)
{
if (filter == null)
filter = new DataFilterInput { Top = 100 };
var model = new IndexModel();
return View(model);
}
Wie kann ich wissen, ob ich die Werte in Abwesenheit von Benutzereingaben in Verzug sein sollte (ich will nicht in die Anfrage Query-String oder Formularsammlungen gehen)?
Kontrollmodellzustand mit und schauen Sie in Datenattribute – Nkosi
@Nkosi, können Sie bitte ein wenig mehr Details liefern und senden diese als Antwort anstelle eines Kommentars? – TheCatWhisperer
Haben Sie das '[DefaultValue (null)]' Attribut vor der Parameterdeklaration anstelle von '= null' versucht? Ich frage mich, ob das das Verhalten ändern würde. –