2012-11-21 6 views
0

을 사용하여 부트 스트랩 popover에 이미지를 삽입하십시오. 데이터베이스의 이미지는 byte[]이며, 조치를 취해야합니다.asp.net mvc

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

나는 경우, 귀하의 질문을 정확하게 이해하고, 당신이 보여준 행동을 불러 냄으로써 페이지에 데이터베이스에 저장된 이미지를 표시하고 싶습니까? – jwaliszko

+0

예, @JaroslawWaliszko는 바이트 []이므로 이미지입니다. 조치로 처리해야합니다. – gormit

답변

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 내용의 경우)

편집 : the reference에 설명 된대로

내용에 HTML 코드를 전달하는 경우, jQuery를 .html(); 작동합니다 내용의 HTML을 외부 DIV에 호출 :

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

Jaroslaw에게 감사 드려요.하지만 제 첫 번째 문제는 액션을 호출하는 것입니다. 부트 스트랩 데이터 콘텐츠 태그 안에 있습니다. 심지어 정규 구문을 작성하는 방법을 모르겠다. 따옴표 안에 따옴표가 있습니다 (데이터 내용에서 인용). – gormit

+0

html을 데이터 콘텐츠에 배치하려면 다음을 참조하십시오. http://stackoverflow.com/questions/8875376/is-it-possible-to-use-a-div-as-content-for-twitters-popover – jwaliszko

+0

... 이제 데이터 컨텐츠 대신 jquery로 컨텐츠를 얻었으므로 액션 메소드를 시도 할 것이다. – gormit