📜  如何在 asp.net mvc 中显示数据库中的图像.我将图像表和图像路径创建为 varchar - C# (1)

📅  最后修改于: 2023-12-03 15:38:12.962000             🧑  作者: Mango

如何在 ASP.NET MVC 中显示数据库中的图像

在 ASP.NET MVC 应用程序中,有时需要从数据库中检索图像并将其显示在视图中。本文将介绍一种用于显示数据库中图像的方法。

准备工作
  1. 创建一个包含图像的表 首先,我们需要在数据库中创建一个包含图像的表。可以使用以下 SQL 语句创建一个名为“Images”的表:
CREATE TABLE Images (
    Id INT PRIMARY KEY IDENTITY(1,1),
    Name varchar(255),
    ImagePath varchar(255)
)
  1. 在视图上显示图像 一种常见的方法是在 HTML 中使用以下代码片段来显示图像:
<img src="@Url.Content(Model.ImagePath)" alt="@Model.Name" />
实现方法
  1. 创建一个带有“ImageId”属性的图像模型。
public class ImageModel
{
    public int ImageId { get; set; }
    public string Name { get; set; }
    public string ImagePath { get; set; }
}
  1. 创建一个控制器方法来检索存储在数据库中的图像。
public ActionResult DisplayImage(int id)
{
    // 从数据库中获取图像
    ImageModel image = GetImageFromDatabase(id);

    // 返回图像给视图
    return File(image.ImagePath, "image/jpeg");
}
  1. 创建一个辅助函数来获取存储在数据库中的图像。
private ImageModel GetImageFromDatabase(int id)
{
    // 创建一个连接
    using (SqlConnection connection = new SqlConnection("connection_string"))
    {
        // 打开连接
        connection.Open();

        // 创建查询命令
        SqlCommand command = new SqlCommand("SELECT * FROM Images WHERE Id = @Id", connection);
        command.Parameters.AddWithValue("@Id", id);

        // 执行查询
        SqlDataReader reader = command.ExecuteReader();

        // 如果找到图像,返回它
        if (reader.Read())
        {
            return new ImageModel
            {
                ImageId = (int)reader["Id"],
                Name = (string)reader["Name"],
                ImagePath = (string)reader["ImagePath"]
            };
        }

        // 没有找到图像,返回空模型
        return null;
    }
}
  1. 在视图中调用控制器方法以显示图像。
<img src="@Url.Action("DisplayImage", new { id = Model.ImageId })" alt="@Model.Name" />
总结

通过创建包含图像路径的表,并使用控制器来检索和显示图像,可以轻松在 ASP.NET MVC 中显示存储在数据库中的图像。