2016-07-11 9 views
13

Mam klasę modelu, do której chcę powiązać ciąg zapytania w aplikacji ASP.NET MVC Core (RC2).Powiązanie modelu w środowisku ASP.NET Core w celu odwzorowania podkreśleń na nazwy właściwości znacznika tytułu

Potrzebuję wspierać podkreślenia w kluczach ciągów zapytania, aby potwierdzić specyfikacje OAuth, ale chcę pracować z nazwami właściwości tytułu w mojej aplikacji.

Moja klasa modelu wygląda następująco:

class OauthParameters 
{ 
    public string ClientId {get; set;} 

    public string ResponseType {get; set;} 

    public string RedirectUri {get; set;} 
} 

więc chciałbym związać ciągi zapytań jak client_id, response_type i redirect_uri do niego.

Czy istnieje sposób dla ASP.NET MVC Core, aby to zrobić automagicznie lub poprzez adnotację atrybutu?

Przeczytałem kilka artykułów na temat pisania niestandardowych segregatorów do modeli, ale wydają się one (1) zbyt skomplikowane dla tego, co próbuję osiągnąć i (2) są pisane dla RC1 lub wcześniejszych, a niektóre z składnia się zmieniła.

Z góry dziękuję.

+1

spoiwa modelu nie muszą być bardzo skomplikowane, a są one na pewno dobry punkt wyjścia do tego, co staramy się osiągnąć –

+0

https://docs.asp.net/en /latest/mvc/models/model-binding.html – Set

+0

Ale jaki jest problem, obiekty widoku danych przekształcone (model kontrolera) w obiektach transferu danych (Business Logic DTO) są wspólne w modelowaniu mvc nie widzą żadnego problemu z tym podejściem – SilentTremor

Odpowiedz

17

Możesz użyć atrybutu FromQuery atrybutu Name tutaj.

Przykład:

public class OauthParameters 
{ 
    [FromQuery(Name = "client_id")] 
    public string ClientId { get; set; } 

    [FromQuery(Name = "response_type")] 
    public string ResponseType { get; set; } 

    [FromQuery(Name = "redirect_uri")] 
    public string RedirectUri { get; set; } 
} 
+0

Niesamowite. Spróbuję, dzięki! – JamieNewman

+0

Idealny. Dokładnie to, czego szukałem. – JamieNewman

+1

Czy istnieje odpowiednik żądań POST? – dalemac