Как передать параметр DataTable из приложения MVC в веб-API? - PullRequest
0 голосов
/ 13 февраля 2019

Мне нужно передать DataTable как параметры из моего приложения MVC в веб-API.

Я ищу некоторый код как

 public void ConvertToSomeType(DataTable dt)

 {
 /*This code would be on mvc application 
 }


 public HttpActionResult GetData(SomeType st)
{

/*Here method should be convert sometype to DataTable*/

}

Так что я ожидал того же DataTable, который отправляется из приложения MVC итот же DataTable получает в webapi

Исходная таблица создана следующим образом

 DataTable dt = new DataTable();
 dt.column.add("Id");
 dt.column.add("Name");
 dt.rows.add("1","abc");
 dt.rows.add("1","abc");

Ожидается та же DataTable в webapi

public HttpActionResult GetData(SomeType st)
{

DataTable dt = SomeMethod(st);
}

1 Ответ

0 голосов
/ 13 февраля 2019

У вас есть один вариант с шагами ниже:

1) Сериализация вашей DataTable в JSON из MVC Controller, например,

public ActionResult GetDatatable()
{
    DataTable dt = new DataTable();
    dt.Columns.Add("Id");
    dt.Columns.Add("Name");
    dt.Rows.Add("1", "abc");
    dt.Rows.Add("1", "abc");

    string json = JsonConvert.SerializeObject(dt);

    //Call the Web API Controller action method with above string parameter via WebRequest or HttpClient
}

2) Десериализовать входящую строку json обратно в DataTable, как,

public IHttpActionResult GetData(string json)
{
    DataTable dt = JsonConvert.DeserializeObject<DataTable>(json);
}

Примечание: Вам необходимо установить пакет NuGet для newtonsoft.json, используя команду ниже в консоли диспетчера пакетов

Install-Package Newtonsoft.Json -Version 12.0.1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...