如何使用 MVC 4 显示数据库中的二进制图像以编辑表单

2023-12-19

我成功地将图像作为二进制图像存储在数据库中。 我想在编辑表单中显示这些图像以修改并保存更改。 显示数据库中的二进制图像时,以 Edit.cshtml 形式抛出 System.OutOfMemoryException'。

有人可以纠正我的代码吗?

型号类别:

public class Accommodation
    {
        [Key]
        public string A_Unique_Id { get; set; }

        public byte[] Picture1 { get; set; }

        public byte[] Picture2 { get; set; }

        public byte[] Picture3 { get; set; }


  }

// 获取:/住宿/编辑/5

public ActionResult Edit(string id)
    {
        Accommodation accommodation = db.Accommodation.Find(id);
        ViewBag.SelectedAustraliaStateId = new SelectList(db.AustraliaStates, "AustraliaStateId", "AustraliaStateName", accommodation.SelectedAustraliaStateId);

        return View(accommodation);
    }

// POST: /住宿/编辑/5

[HttpPost]
public ActionResult Edit(Accommodation accommodation)
{
    if (ModelState.IsValid)
    {
        db.Entry(accommodation).State = EntityState.Modified;

        //the following line is for re-assigning back the DDL modified value.
        accommodation.State = accommodation.SelectedAustraliaStateId;

        db.SaveChanges();
        return RedirectToAction("Index");
    }
    return View(accommodation);
}

编辑.cshtml

<div class="editor-label">
        @Html.LabelFor(model => model.Picture1)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Picture1)
        @Html.ValidationMessageFor(model => model.Picture1)
    </div>

错误信息:行中抛出“System.OutOfMemoryException”类型的异常@Html.EditorFor(model => model.Picture1)


在您的视图中显示图像

View

<form  method="post" enctype="multipart/form-data">
@{
    if (Model.Picture1 != null)
      {
         string imageBase64 = Convert.ToBase64String(Model.Picture1);
         string imageSrc = string.Format("data:image/gif;base64,{0}", imageBase64);
         <img src="@imageSrc" width="100" height="100" />
      }
  }
    <input type="file" name="photo" id="files" accept="image/*;capture=camera">
    <button type="button">Submit</button>
  </form>

控制器

[HttpPost]
public ActionResult Edit(Accommodation accommodation)
{

  if (Request.Files["files"] != null)
    {
            byte[] Image;
            using (var binaryReader = new BinaryReader(Request.Files["files"].InputStream))
            {
                Image = binaryReader.ReadBytes(Request.Files["files"].ContentLength);
            }
    }
    accommodation.Picture1=Image;
  //your code to save data
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 MVC 4 显示数据库中的二进制图像以编辑表单 的相关文章

  • ASP MVC4 - 通过视图模型传递列表以查看

    我有一个模型人物 其中包括出生日期等字段 我想将所有人的列表以及每个人的计算年龄传递给视图 因此 视图模型 public class vm PersonList public Person Person get set public int
  • MVC4如何在没有导航属性的情况下加载相关数据

    我对 MVC 相当陌生 并且已经使用 EF database first 创建了一个 MVC4 应用程序 该数据库不包含外键定义 我无法添加它们 我不拥有该数据库 以下是数据库中的两个示例类 public partial class All
  • Microsoft ASP.NET Web Pages 2 Data Nuget 包的用途是什么?

    据我了解 ASP NET MVC 4 项目所需的最低 Nuget 包是 微软 ASP NET MVC 4 微软 ASP NET 剃刀 2 微软 ASP NET 网页 2 微软网络基础设施 不过我很想知道 以下包会添加到项目中什么 Micro
  • MVC4 中的 ELMAH 和 API 控制器不记录错误

    在 MVC4 中使用 API 控制器 当控制器操作引发异常时 ELMAH 不会记录错误 我认为问题在于 MVC4 将 HTTP 状态代码设置为 500 并且它返回 JSON 对象中的异常详细信息 但它不会抛出未处理的异常 因此 ELMAH
  • 从 MVC 控制器返回 JSON 字符串

    我使用以下代码将对象发送 接收到我的 mvc 控制器 ajax url createOrUpdateTimeRecord data JSON stringify data type POST dataType json contentTyp
  • 部署在 Azure 中时在 EF 迁移中使用更新数据库

    上下文 我在 Azure 中部署了 ASP NET MVC4 解决方案 我的 MSSQL Server 数据库也在 Azure 中 我目前的部署方式是这样的 在 web config 中 我将连接字符串从本地数据库 sdf 更改为 azur
  • ASP.NET MVC 4,迁移 - 如何在生产服务器上运行“更新数据库”

    我可以使用包管理器在本地运行 update database verbose 可能是一个愚蠢的问题 但我无法在线找到它 一旦我的网站部署 我如何在服务器上手动运行它 其次 您会推荐哪些其他策略来将数据库迁移部署到生产环境 以及它们如何更好
  • Web API 和 ASP MVC 之间的主要区别是什么

    标题确实总结了我的问题 我已经使用了这两种技术 但我不确定其中一种技术与另一种技术有何显着不同 在本质上 在设计一个宁静的 Web 应用程序时 选择 ASP MVC 或 Web API 时应考虑哪些标准和 或指南 Purpose ASP N
  • 如何强制 BundleCollection 刷新 MVC4 中缓存的脚本包

    or 我如何学会停止担忧 只针对 Microsoft 完全未记录的 API 编写代码 有没有官方的实际文档System Web Optimization发布 因为我确实找不到任何内容 没有 XML 文档 而且所有博客文章都引用了 RC AP
  • ApiController 操作无法从查询字符串解析数组

    使用 Visual Studio 2012 2 MVC4 Web 应用程序 我有请求发送到我的 ApiController 如下所示 http localhost api keys ids 1 ids 2 ids 3 我的印象是以下方法应该
  • 如何将istream的指针移动n个字符?

    我想跳过两个 istream getlines 之间的二进制文件中的一些字符 最好的方法是什么 Shell 我刚刚用 istream read 读入了一个虚拟变量 或者 shell 我使用 n istream tellg 和 istream
  • Python - 将宽字符字符串从二进制文件转换为 Python unicode 字符串

    这是漫长的一天 我有点困惑 我正在读取一个包含大量宽字符字符串的二进制文件 我想将它们转储为 Python unicode 字符串 为了解压非字符串数据 我使用 struct 模块 但我不知道如何对字符串执行相同的操作 例如 阅读 系列 一
  • 在 MVC 4 中的另一个表单中验证 JQuery UI 模式表单

    我在 MVC 4 中有一个表单 其中包含多个字段 根据组合的值 我需要打开一个模式对话框表单并加载到这 3 个附加字段中 这些字段将影响我正在创建的同一实体 在主窗体中进行编辑 对于这个模式对话框 我使用的是 jQuery UI 中的对话框
  • SimpleMemership CreateUserAndAccount 自定义

    我正在尝试添加一个新属性UserProfile我的模型中的类 public class UserProfile Key DatabaseGeneratedAttribute DatabaseGeneratedOption Identity
  • ASP.NET MVC 站点中的覆盖视图不起作用

    我的解决方案中有一个单独的项目 其中包含一些控制器和编译的视图 我将这些控制器用作 MVC 应用程序中其他控制器的基类 并使用 RazorGenerator 编译视图 可以说B是具有非抽象操作方法的基本控制器一些动作返回视图 MyView
  • Web Api FromBody 在 Web 客户端中为空

    您好 我想通过 Web api 控制器中的 body 变量始终为 null 从 C 客户端调用 Web Api 方法 怎样设置才正确呢 客户端 IFileService imgService new ImageServiceBll var
  • ASPXAUTH Cookie 的安全标志

    我们有一个面向外部的应用程序 由外部安全公司进行了渗透测试 应用程序在 ASP NET MVC4 上开发并在 IIS8 Windows 2012 Server 上运行 报告的漏洞之一是 ASPXAUTH 不安全 当我检查 cookie 检查
  • 布局中的模型破坏了其他页面

    由于缺乏 MVC4 经验 我有一个设计缺陷 问题是我的布局中有一个模型 model BasicFinanceUI Models LoginModel Content Site css rel stylesheet type text css
  • 将 Azure Blob 与 Azure 网站结合使用

    我正在制作一个MVC Windows Azure涉及用户上传图像的网站 我想将图像存储在 blob 中 我搜索了教程 但大多数都涉及Webapps而不是 MVC 网站 我发现的唯一有用的教程是 http www codeproject co
  • 模拟 DBSet,EF 模型优先

    正如标题所说 我遵循模型优先方法 所以我的模型类是自动生成的 如果我想嘲笑DBContext衍生的MyModelContainer其中包含DBSets实体类 阅读一些内容 为了进行单元测试 您需要将其更改为IDBSet 是否可以做到这一点

随机推荐