Как принимать модель из Get запроса в WebAPI 2?

Здравствуйте!

Проект: ASP.NET WebAPI 2

Требуется принять из строки GET типа: URL?txn_id=20193504262040&txn_date=1491471490074&account=7013954927&trm_id=952

есть класс:
public class Payment
    {
        public long Id { get; set; }
        public long TxnId { get; set; }
        public DateTime TxnDate { get; set; }
        public string Account { get; set; }
        public long TrmId { get; set; }
        public long PrvId { get; set; }
        public string ProviderName { get; set; }
        public int TrmType { get; set; }
        public double FromAmount { get; set; }
        public double ToAmount { get; set; }
    }


с контроллером:
public IHttpActionResult Get([FromUri] Payment payment)
        {}


Не мапит переменные в строке запроса в с в класс Payment. Я указывал уже атрибуты DataMember, JsonPropertyName и тд. Не работает.

Работает только этот вариант:
public IHttpActionResult Get([FromUri(Name = "txn_id")] long txnId,
                                    [FromUri(Name = "txn_date")] string txnDate,
                                    [FromUri(Name = "account")] string account,
                                    [FromUri(Name = "trm_id")] long trmId,
                                    [FromUri(Name = "prv_id")] long prvId,
                                    [FromUri(Name = "trm_type")] int trmType,
                                    [FromUri(Name = "prv_name")] string prvName,
                                    [FromUri(Name = "from_amount")] double fromAmount,
                                    [FromUri(Name = "to_amount")] double toAmount)
{}


Но он слишком сложный и некрасивый.

Есть какие-нибудь предложения, примеры или советы, куда можно копать?
  • Вопрос задан
  • 377 просмотров
Пригласить эксперта
Ответы на вопрос 1
petermzg
@petermzg
Самый лучший программист
А как вы хотите чтобы вот это работало?
public IHttpActionResult Get([FromUri] Payment payment)

Если у вас имена не совпадают, как комьютер должен догадываться, что "txn_date" это txnDate и т.п.

Тут есть вариант для вас.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы