我正在使用MVC框架在C#和ASP.Net中构建Web应用程序。我已经在本地桌面上运行了该应用程序(现在)。该应用程序具有一个SQL后端,用于存储我的所有数据。我能够通过许多存储过程成功地从SQL数据库中提取数据。数据能够成功地从存储过程一直传输到控制器上的所有视图。
正在传输到视图的部分数据是来自存储在db中的图像的byte [](数据类型为VARBINARY(MAX))。简而言之,我试图从此byte []中获取数据以在div中显示为背景图像。该div在Bootstrap轮播中充当单个图像。
最初,我将以下内容用作控制器:
public ActionResult Dashboard() { DashboardViewModelHolder holder = new DashboardViewModelHolder(); DiscoveryService discoveryService = new DiscoveryService(); holder.national_Elected_Officials = new List(); National_Elected_Officials_Model n = new National_Elected_Officials_Model(); foreach (List
我的想法是,在我看来,我将只调用n.Picture,它将渲染该图片。经过几次尝试和教程之后,我将n.Picture保留为byte [],并在其自己的ActionResult方法中对其进行了处理,如下所示:
public FileContentResult Image(byte[] pictureByteArray) { return new FileContentResult(pictureByteArray, "image/jpeg"); }
我将其称为以下内容:
当选Official是对在控制器(n.Picture)中设置的模型的引用。
有什么我想念的吗?
编辑1
我忘了补充一点,当我调试并逐步执行代码时,div返回null。这是因为调试时永远不会调用div所在的行。如果我将其设置为Url.Action,则该程序实际上将在上线之前进入控制器。如果我执行Html.Action,则程序将跳过该行,然后转到控制器。两者都将返回null,其结果是在控制器端返回错误,因为允许使用null。
编辑2 我尝试将div标签更改为以下内容:
通过将{}放入调试器,实际上可以在我逐步调试时解析该行。现在,问题在于控制器没有接收到来自所选择的Official.Picture传递给它的值。只是为了确认,此变量确实在视图中保留了正确的值。