2010-08-22 9 views
4

Northwind 데이터베이스를 사용하고 있는데 샘플을 만들고 있습니다. 특정 카테고리의 모든 제품을 표시하고 이미지 및 제품 이름과 가격이있는 항목을 생성하는 데 ul을 사용하는보기가 있습니다.asp.net mvc에서 이미지를 렌더링하는 방법은 무엇입니까?

여기 코드를 사용했습니다 : http://blogs.msdn.com/b/miah/archive/2008/11/13/extending-mvc-returning-an-image-from-a-controller-action.aspx.

그리고 내 페이지에서 이미지를 마우스 오른쪽 버튼으로 클릭하면 이미지 URL이 다음과 같이 표시됩니다.

이것은 내가 제공 한 조치 방법이며 Categores ID 만 사용합니다. 다음과 같이 내 ImageController에서 /이미지/쇼/1

내 작업 방법은 다음과 같습니다

// 
    // GET: /Image/Show 
    public ActionResult Show(int id) 
    { 
     var category = northwind.AllCategories().Single(c => c.CategoryID == id); 
     byte[] imageByte = category.Picture; 
     string contentType = "image/jpeg"; 

     return this.Image(imageByte, contentType); 
    } 

참고 : 사진은 바이트 []

나는 다음과 같은 내보기에서 전화입니다. (제품보기 내 모델)

그러나 여전히 이미지를 표시 할 수 없습니다.

+0

작업의 URL (/ image/show/1)로 이동하면 이미지가 올바르게 표시됩니까? 그렇다면 HTML에 이미지를 포함하는 방식에 오류가 있습니다. 그렇지 않으면 Fiddler2 또는 이와 유사한 방법으로 반환 한 데이터를 검사하십시오. – LorenzCK

답변

10

변경 작업을

public FileContentResult Show(int id) 
{ 
    var category = northwind.AllCategories().Single(c => c.CategoryID == id); 
    byte[] imageByte = category.Picture; 
    string contentType = "image/jpeg"; 

    return File(imageByte, contentType); 
} 

와 내가 anoynomus 유형 '경로는이되도록/이미지를 사용했다

<img src="<%: Url.Action("Show","Image",new { id = Model.Category.CategoryID }) %>" /> 
+0

당신은 그것을 얻었다. 도움을 주셔서 감사합니다. 내가 필요로하는 것이 정확히 있다는 것을 깨달았습니다. –

+0

Flippin 'awesome! –

0

은 그게 당신이 가지고있는 문제가 있는지 확실하지 않습니다,하지만 난 항상 행동과 컨트롤러 이름을 활용 :

public FileContentResult Show(int id) 
{ 
    var category = northwind.AllCategories().Single(c => c.CategoryID == id); 
    byte[] imageByte = category.Picture; 
    string contentType = "image/jpeg"; 
    return File(imageByte, contentType); 
} 

이해야한다 : 대신이 방법을 사용하려면

<%= Url.Action("Show", "Image", new { id = product.Category.CategoryID }) %> 
+0

나는 내 것도 업데이트했다. 고마워. –

1

시도를 그 확장 기능을 사용하지 않는다면 기본 접근 방식이되어야합니다. 이 작동하는 경우 오류가 확장에있는 경우 작동하지 않으면 오류가 어딘가에 - 아마 라우팅에 있습니다. 구스타브의 대답도 확인하십시오!

+0

방법을 변경했지만 여전히 이미지가 표시되지 않습니다. 이미지 쇼의 URL은/Image/Show? CategoryID = 1 이고 내 경로는/Products/Browse/Beverages입니다. 예를 들어 –

+0

내가 길을 익숙하게하기 위해 나는 anoynomus 유형 ", false) });