2017-09-26 1 views
0

Lassen Sie sich diese Klasse übernehmen:Gibt es einen automatisierten Mechanismus, mit dem ich feststellen kann, ob ein E-Mail-Feld fehlt?

public class AccountInfo 
{ 
    public string Email; 
    public string Username; 
    public string Password; 
} 

und diesen ASP-api:

[HttpPost, Route("create")] 
public IActionResult CreateUser([FromBody]AccountInfo Info) 
{ 
    ... 
} 

Wenn ein Benutzer etwas wie dies passiert:

{ 
    "eail" : "ndienw", <--- notice the mispelling 
    "username" : "djiw", 
    "password" : "dow" 
} 

Das E-Mail-Feld null sein wird, so dass ich muss bei jedem Anruf nach jedem Feld suchen.

Gibt es einen automatisierten Mechanismus, bei dem ich feststellen kann, ob ein Feld fehlt? Ich suche nach etwas generischem, das durch alle Anrufe angewendet werden kann. Die Option zu deaktivieren und einige Parameter optional zu markieren wäre großartig, aber in unserem Fall wird immer alles benötigt.

In diesem Szenario ist der ModelState noch gültig; Ist das das erwartete Verhalten?

Antwort

0

Sie können Datenanmerkungen in Ihrer E-Mail-Eigenschaft verwenden. Das RegularExpression-Attribut überprüft das Feld, das sich an diesem befindet, ob der angegebene Wert mit diesem Muster übereinstimmt. Erforderliches Attribut prüft, ob dieses Feld leer ist oder nicht.

[RegularExpression(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", ErrorMessage = "Email was invalid.")] 
[Required] 
public string Email; 
+0

was ich suche ist ein generischer Mechanismus, der jede API abfängt und sicherstellt, dass jeder Parameter bereitgestellt wird; Ich versuche nicht alle Felder explizit markieren zu müssen. – Thomas

Verwandte Themen