2015-08-06 2 views
0

Я хочу передать массив строки в контроллер. Я передаю свои данные из другого кода C#.Передача массива строки в контроллер

Вот мой запрос получите:

String[] varList = new List<String> { "A", "B" }.ToArray(); 
using (var client = new HttpClient()) 
{ 
    await client.GetAsync(GetHttpSchema() + HttpContext.Current.Request.Url.Host + "/AController/B?varA=" + varA + "&varB=" + varB + "&varList=" + varList); 
} 

А вот мой контроллер:

public partial class AController : BaseController 
{ 
    public async Task B(string A, string B, String[] varList) { } 
} 

Теперь в отладке я получаю следующее значение (только одно значение) для список переменных: System.String []. .... Любые предложения?

+0

Нет ... Ожидаемый результат i новый массив с двумя значениями A и B. – Kram

+0

то почему вы добавляете массив в строку? '" & varList = "+ varList' – fubo

+0

, так как я должен передать свой массив? – Kram

ответ

1

Во-первых, вы можете просто создать массив как этот

string[] varList = new [] {"A", "B"} 

Во-вторых вы хотите получить значения массива, но метод ToString массивов по умолчанию, который просто дает вам имя типа , Вместо этого вы можете использовать string.Join

string listOfValues = string.Join(",", varList); 

Это даст вам запятую список ваших значений. Или вам может понадобиться сделать что-то вроде следующего, чтобы получить «& varList = A $ varList = B» на основе this.

string listOfValues = "$varList=" + string.Join("&varList=", varList); 

Лично я не знаю, в каком формате вы нужны эти ценности в на ваш запрос HTTP, поэтому я оставлю эту часть до вас.

+0

Спасибо. О массиве, который я знаю, я просто хотел быстро изменить здесь в стеке. Я использовал ваш string.Join подход и эта работа отлично !! – Kram

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