使用asp.net mvc在bootstrap popover中插入图像

时间:2012-11-21 08:27:55

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

来自数据库的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>"

1 个答案:

答案 0 :(得分:0)

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

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代码传递给内容,则在外部div上使用内容html调用的jQuery .html();应该按照the reference中的说明运行:

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