【问题标题】:Insert image in bootstrap popover using asp.net mvc使用 asp.net mvc 在引导弹出窗口中插入图像
【发布时间】:2012-11-09 11:01:29
【问题描述】:

这是来自数据库的byte[] 图像,我需要调用一个操作。

<td><a href="#" rel="popover" class="user" data-content="
<h3>@hItem.m_sUsername</h3>
<img src=@Url.Action("Show", "Image", new {id = "1"}) alt="Image" />
<p>First name: @hItem.m_sFirstname</p>
<p>Last name: @hItem.m_sLastname</p>"

【问题讨论】:

  • 如果我正确理解您的问题,您想通过调用您显示的操作在页面上显示图像(存储在数据库中)吗?
  • 是的,@JaroslawWaliszko,因为它是 byte[] 图像,我需要采取行动。

标签: javascript asp.net-mvc-3 twitter-bootstrap


【解决方案1】:

好的,所以你的逻辑应该是这样的:

public class ImageController
{
    [HttpGet]
    public virtual ActionResult Show(int id)
    {
        var byteArray = YourDatabaseAdapter.LoadImage(id);
        var mimeType = GetMimeType(fileName);
        return base.File(byteArray, mimeType, fileName);
    }

    private static string GetMimeType(string fileName)
    {
        var mimeType = "application/unknown";
        var extension = Path.GetExtension(fileName);
        if (extension != null)
        {
            var ext = extension.ToUpperInvariant();
            var regKey = Registry.ClassesRoot.OpenSubKey(ext);
            if (regKey != null && regKey.GetValue("Content Type") != null)
            {
                mimeType = regKey.GetValue("Content Type").ToString();
            }
        }
        return mimeType;
    }
}

通用 GetMimeType 函数根据从 Windows 注册表获取的文件扩展名在 http 标头中设置内容类型。

编辑(用于 html 内容):

如果将 html 代码传递给内容,使用内容 html 在外部 div 上调用的 jQuery .html(); 应该按照 the reference 中的描述工作:

$('.user').popover({ 
    html : true,
    content: function() {
      return $('#data-content-wrapper').html();
    }
});

【讨论】:

  • 谢谢 Jaroslaw,但我的第一个问题是调用动作,它在引导数据内容标签内。我什至不知道如何编写常规语法。我在引号内有引号(来自数据内容)。
  • 要在数据内容中放置 html,请看这里:stackoverflow.com/questions/8875376/…
  • ...现在我使用 jquery 而不是 data-content 获取内容,我将尝试您的操作方法。
猜你喜欢
  • 1970-01-01
  • 2021-03-07
  • 1970-01-01
  • 2020-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多