Ein paar Dinge zu beachten:
- Es wäre ein & Charakter zwischen den Parametern, dh http://localhost:xxxxx/api/getbook?UserId=7&UserId=7
- Der erste Parameter des gleichen Namens wird standardmäßig verwendet werden, wenn Sie ein Modell nehmen in zu einer Controller-Methode
Wenn Sie einige Fehler zu werfen sind sehr daran interessiert, wenn Sie doppelte Parameternamen entdecken, dann können Sie folgendes tun:
var queryParameters = Request.GetQueryNameValuePairs()
.GroupBy(k => k.Key)
.Where(g => g.Count() > 1)
.Select(q => q.Key)
.ToList();
Dies gibt Ihnen eine List<string>
von Parameternamen, die mehr als einmal erscheinen.
Wenn Sie sich dafür interessieren, ob die Kombination aus Parametername und Wert wiederholt wird (wie in Ihrem Beispiel), dann verwenden Sie stattdessen GroupBy(k => k)
und Sie erhalten eine Liste mit KeyValuePair
.
Vielen Dank sir das ist, was ich gesucht habe: D –
Verwenden von Action Context zum Ausführen von Action-Methode können wir diese Abfrage richtig verwenden ?? –
Ich testete dies innerhalb einer Methode in einem Controller. Irgendwo anders und Sie müssen möglicherweise 'HttpContext.Current.Request' verwenden. Sie könnten ein 'BadRequest()' mit einem String zurückgeben oder besser noch eine Nachricht zum 'ModelState' hinzufügen. –