Ich habe ein Viewmodel, mit dem ich ein Geschäftssuche-Filterobjekt erstellen kann. Aus meiner Sicht erstelle ich einen Aktionslink wie folgt ...MVC 5 - Eigenschaft nicht serialisieren, wenn der Standardwert
@Html.ActionLink("Search Link",
actionName:="Index",
controllerName:="Jobs",
routeValues:=New MyFilterViewModel() With {.Field1 = "Some Value", .Field2 = "Some other value"}, htmlAttributes:=Nothing)
Das funktioniert gut. Es serialisiert die Viewmodel-Eigenschaften als Querystring-Parameter, die dann von der Controller-Aktion gebunden werden.
Das Filteransichtsmodell hat eine Menge anderer Eigenschaften, von denen die meisten nicht relevant sind, aber sie sind immer noch in den URL-Parametern serialisiert, obwohl die meisten nicht festgelegt sind.
Gibt es eine Möglichkeit, die Modelview-Eigenschaften zu dekorieren, so dass sie nur dann serialisiert werden, wenn sie zugewiesen sind (kein Standardwert)?
Dies funktioniert für Json Serialisierung, aber nicht für URL-Parameter Serialisierung. – user1751825
Vielleicht kann der gleiche Ansatz mit einem benutzerdefinierten Modelbinder implementiert werden? – Nsevens
@Nsevens ja dies kann mit einem benutzerdefinierten Modellbinder getan werden. –