Also habe ich einen benutzerdefinierten Model Binder implementiert für DateTime
type und ich registriere ihn wie folgt:
und dann habe ich 2 Beispielaktionen eingerichtet, um zu sehen, ob meine benutzerdefinierte Modellbindung stattfindet:
%Vor% Wenn ich beide Aktionen von erwähnten URLs aus ausführen und aufrufen, wird die user
-Eigenschaft von JoinDate
erfolgreich mit dem von mir konfigurierten benutzerdefinierten Binder gebunden, aber BindDateTime
's datetime
-Parameter wird nicht mit dem benutzerdefinierten Binder gebunden .
Ich habe bereits in config angegeben, dass alle DateTime
meinen benutzerdefinierten Ordner verwenden sollen, warum dann die Gleichgültigkeit? Vorschläge werden sehr geschätzt.
CurrentCultureDateTimeAPI.cs:
%Vor% HINWEIS: Wenn ich [FromUri(Binder=typeof(CurrentCultureDateTimeAPI))]DateTime datetime
verwende, funktioniert es wie erwartet, aber warum?
Ziemlich überraschend auch:)
Mein anfänglicher Zweifel war diese Linie:
%Vor% MSDN sagt GlobalConfiguration
= & gt; GlobalConfiguration provides a global System.Web.HTTP.HttpConfiguration for ASP.NET application
.
Aber aus seltsamen Gründen scheint das bei diesem speziellen Szenario nicht zu funktionieren.
Also,
Fügen Sie diese Zeile einfach in die statische Klasse WebApiConfig
, damit Ihre WebAPIConfig
-Datei wie folgt aussieht:
Und alles funktioniert gut, weil diese Methode direkt von WebAPI framework
aufgerufen wird, also wird Ihr CurrentCultureDateTimeAPI
sicher registriert.
Überprüft das mit Ihrer Lösung und funktioniert super.
Hinweis: (Aus den Kommentaren) Sie können Attribute Routing
weiterhin unterstützen und diese Zeile config.MapHttpAttributeRoutes()
nicht auskommentieren.
Aber trotzdem, es wäre großartig, wenn jemand sagen könnte, warum GlobalConfiguration
nicht funktioniert
Es sieht so aus, als ob Sie einige Daten auf dem Server veröffentlichen möchten. Versuchen Sie, FromData zu verwenden und JSON zu veröffentlichen. FromUri wird normalerweise verwendet, um einige Daten abzurufen. Verwenden Sie die WebAPI-Konventionen und lassen Sie sie für Sie arbeiten.
Tags und Links asp.net-web-api c# asp.net-web-api2