Привязка модели в ядре ASP.NET для сопоставления символов подчеркивания с именами имен заголовков
У меня есть класс модели, в который я хочу привязать строку запроса в моем приложении ASP.NET MVC Core (RC2).
Мне нужно поддерживать подчеркивания в строках ключей запроса, чтобы подтвердить спецификации OAuth, но я хочу работать с именами свойств заголовка в моем приложении.
Мой класс модели выглядит следующим образом:
class OauthParameters
{
public string ClientId {get; set;}
public string ResponseType {get; set;}
public string RedirectUri {get; set;}
}
поэтому я хотел бы привязать к нему строки запроса, такие как client_id
, response_type
и redirect_uri
.
Есть ли способ для ASP.NET MVC Core сделать это автоматически или через аннотацию атрибута?
Я прочитал несколько статей о написании пользовательских связующих объектов, но они кажутся (1) слишком сложными для того, что я пытаюсь достичь, и (2) написаны для RC1 или ранее в виду, а некоторые из синтаксиса изменилось.
Спасибо заранее.
Ответы
Ответ 1
Здесь вы можете использовать свойство FromQuery
attribute Name
.
Пример:
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; }
}
Ответ 2
Решение для .net core 2.1 и 2.2
Или без атрибутов вы можете сделать что-то вроде этого, что я считаю чище (конечно, если свойства модели совпадают с параметрами запроса).
Между тем я использую его в .net Core 2.1 и 2.2
public async Task<IActionResult> Get([FromQuery]ReportQueryModel queryModel)
{
}