2016-02-17 1 views
-1

Это под контроллерКак передать объект класса и список в веб-api?

[HttpPost] 
    public void SendMailMessageFromandToList(string fromusername, MailMessage mailMessage,List<string> tousernamelst) 
    { 
    } 

мне нужно знать, как я могу назвать этот метод с использованием HttpClient. Я пробовал передавать только объект класса, и он отлично работает.

confClient.PostAsJsonAsync("api/Utility/SendMailMessageFromandToList?fromusername="+ fromusername +"", mail1); 
+0

Вы имеете в виду, что используете HttpClient и хотите знать, как вызвать действие и передать имя, сообщение и список? –

+0

Да, я хочу знать, как я могу передать три параметра сразу в PostAsJsonAsync. – Swapnil

+0

Что вы пробовали? Прочитали ли вы какую-либо документацию по [PostAsJsonAsync] (https://msdn.microsoft.com/en-us/library/hh944521 (v = vs.118) .aspx)? Что касается структурирования метода [web api и привязки параметров] (http://www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api) ? Вам нужно приложить некоторые усилия. – Igor

ответ

0

Как правило, вы должны использовать стандартный синтаксис HTTP запроса для добавления нескольких параметров:

/api/Utility/SendMailMessageFromandToList**?**fromusername=example**&**mailMessage=... 

Для прохождения список параметров в URL вы можете следовать следующим способом, изложенным в этой статье: Passing a List<string> to an MVC Web API method using the browser bar

Параметр строки запроса должен быть такого формата .../APIName? Parameter [] = value1 & paramete г [] = значение2 & ....

Update

Вы можете пройти сложный объект в методе PostAsJsonAsync в качестве второго параметра:

class ExampleModel { 
public string property1 {get;set;} 
public IList<string> property2 {get;set;} 
} 
var complexObject = new ExampleModel(); 
//Set your values here then post it 
client.PostAsJsonAsync("api/Utility/SendMailMessageFromandToList",complexObject); 

Вам нужно будет только создать объект с тремя вашими типами.

+0

Благодарим вас за ответ. Я попробую это. – Swapnil

+0

Этот метод был бы хорош, если бы у меня было меньше количества параметров в списке, а не если у меня больше 10. Есть ли какой-либо другой метод, который я могу использовать для передачи строки, списка и объекта класса. – Swapnil

+0

Я обновил свой ответ - это решает вашу проблему? – edesr

Смежные вопросы