我需要将DataTable作为参数从我的MVC应用程序传递到Web 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*/
}
所以我期望从mvc应用程序发送的相同数据表和webapi中接收的相同数据表
创建的源表如下
DataTable dt = new DataTable();
dt.column.add("Id");
dt.column.add("Name");
dt.rows.add("1","abc");
dt.rows.add("1","abc");
期望在webapi中使用相同的数据表
public HttpActionResult GetData(SomeType st)
{
DataTable dt = SomeMethod(st);
}
答案 0 :(得分:1)
您可以通过以下步骤选择一个选项,
1),将数据表从MVC Controller序列化为JSON,例如
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);
}
注意:您需要通过在软件包管理器控制台中使用以下命令来为newtonsoft.json安装NuGet软件包
Install-Package Newtonsoft.Json -Version 12.0.1