前端使用uni.request向后端发起请求,后端C#代码控制期中,不适用实体模型,该怎么接收对象数组的参数
时间: 2024-09-11 11:03:33 浏览: 51
前端使用 UniApp 的 `uni.request` 发起 HTTP 请求时,如果后端是 C#(通常用于 ASP.NET 或 .NET Core),且后端不使用传统的实体模型(如 Entity Framework 中的 ORM 对象),你需要直接处理 JSON 格式的数据。在 C# 控制器中,你可以通过 `ApiController` 类或者自定义控制器来接收 JSON 参数。
这里是一个简单的示例:
1. **前端 (JavaScript - UniApp)**:
```javascript
async function sendData(data) {
try {
const response = await uni.request({
url: 'http://your-backend-url/api/endpoint', // 替换为你的实际后端 URL
method: 'POST',
data: JSON.stringify({ items: data }), // 将对象数组转换为 JSON 字符串
header: {
'Content-Type': 'application/json'
}
});
console.log(response.data);
} catch (err) {
console.error('Error:', err);
}
}
// 调用函数并传入你要发送的数据
const arrayData = [{ key: 'value1' }, { key: 'value2' }];
sendData(arrayData);
```
2. **后端 (C# - ASP.NET Core API)**:
```csharp
[HttpPost]
public IActionResult PostData([FromBody] List<dynamic> items) {
if (items != null && items.Count > 0) {
foreach (var item in items) {
// 这里根据 item 中的具体键值对处理数据
string keyValue = item["key"].ToString(); // 示例,假设有一个 "key" 属性
// ...其他处理...
}
}
return Ok();
}
```
在这里,C# 接收的是 `List<dynamic>` 类型,它允许你在不知道具体类型的情况下处理 JSON 数据。但是请注意,`dynamic` 只是在调试阶段方便,生产环境中推荐明确指定对象类型或者序列化到更具体的类型。
阅读全文