ASP.NET core MVC 向模型中添加list,并保存进数据库
时间: 2024-03-12 14:46:16 浏览: 78
要向 ASP.NET Core MVC 模型中添加列表,并将其保存到数据库中,可以按照以下步骤进行操作:
1. 首先,在模型类中定义一个 List 属性,如下所示:
```csharp
public class MyModel
{
public int Id { get; set; }
public List<string> MyList { get; set; }
}
```
2. 在数据库中创建一个表,其中包含一个主键列和一个用于存储列表数据的 JSON 列。例如:
```sql
CREATE TABLE MyTable (
Id INT IDENTITY(1,1) PRIMARY KEY,
MyList JSON NOT NULL
);
```
3. 在视图中,使用 HTML 的 form 元素来提交表单数据。在表单中,可以通过使用 for 循环和 Html.HiddenFor() 方法来将列表中的每个元素都作为隐藏字段提交。例如:
```html
@model MyModel
@using (Html.BeginForm())
{
for (int i = 0; i < Model.MyList.Count; i++)
{
@Html.HiddenFor(m => m.MyList[i])
}
<input type="submit" value="Submit" />
}
```
4. 在控制器的 POST 方法中,可以将列表数据保存到数据库中。例如:
```csharp
[HttpPost]
public IActionResult MyAction(MyModel model)
{
// Convert the list to a JSON string
string json = JsonConvert.SerializeObject(model.MyList);
// Insert the data into the database
string connectionString = "your_connection_string_here";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string sql = "INSERT INTO MyTable (MyList) VALUES (@MyList);";
SqlCommand command = new SqlCommand(sql, connection);
command.Parameters.AddWithValue("@MyList", json);
command.ExecuteNonQuery();
}
return RedirectToAction("Index");
}
```
这样就可以向 ASP.NET Core MVC 模型中添加列表,并将其保存到数据库中了。请注意,此示例使用了 Newtonsoft.Json 库将列表转换为 JSON 字符串。如果您使用的是 .NET Core 3.0 或更高版本,则可以使用 System.Text.Json 库来完成此操作。
阅读全文