c# - 如何将参数 DataTable 从 mvc 应用程序传递到 web api?
问题描述
我需要将 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 应用程序发送的相同 DataTable 和在 webapi 中接收的相同 DataTable
源表创建如下
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);
}
解决方案
您有以下步骤的一个选项,
1)从MVC控制器将您的DataTable序列化为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
推荐阅读
- java - 重新启动活动不会完全杀死旧活动?
- c - 如果主线程完成但对等线程没有完成怎么办?
- python - 链接选择的 Scrapy 规则
- java - 使用 Java HTTPRequest 请求不记名令牌的问题
- r - 在R中转换并表示不同单位制的数据
- html - Display flex 正在破坏 material-ui 网格
- html - 从 Illustrator 将我的徽标导出为 PNG,但看起来模糊且有点扭曲
- java - 如何在 Java 中对 BigDecimal 进行舍入
- asp.net-core - 来自环境变量的 ASP.NET Core DataProtection 主密钥
- c# - 在 Fluent Validation 中,有没有办法从其他验证器的属性规则中复制现有的属性规则,例如外键?