MVC에서 이미지 크기 로직의 올바른 위치는 무엇입니까?

Urban Björkman

배경:

웹샵 애플리케이션에는 모든 종류의 제품 목록을 만들기위한 여러 부분보기가 있습니다. 주요 리팩토링 노력에서 우리는 중복 된 코드를 모두 피하기 위해 이러한 부분 중 하나를 제외하고 대부분을 제거하려고합니다.

목록은 <ul> <li>CSS에서 지정한 디자인 속성 으로 간단 합니다.

다음과 같은 이미지 URL에 따라 이미지를 적절한 크기로 동적으로 조정하는 기존 프레임 워크가 있습니다.

http://images.shop.com/data/product/160x200/5155-5ca8e.jpg

이 이미지는 160x200으로 조정됩니다.

우리는 가능성이 있기 때문에 클라이언트에게 필요한 것보다 더 큰 이미지를 요청하도록 요청하고 싶지 않습니다.

질문:

이미지 크기 선택 논리에 가장 적합한 위치는 무엇입니까?

또는 다른 방식으로 표현합니다. img src이 맥락에서 속성 은 어느 시점에서 결정되어야 하는가?

이런 종류의 논리에는 여러 가지 잠재적 인 위치가 있습니다.

  1. 메인 모델 / 뷰 / 컨트롤러 컨텍스트
  2. 부분 모델 / 뷰 / 컨트롤러 컨텍스트
  3. 자바 스크 릿
  4. 이미지 용 HTTP 핸들러

# 1 또는 # 2가 아마도 가장 의미가 있다고 생각합니다. 그렇다면이 모델,보기 또는 컨트롤러 논리입니까? 그들 모두는 어떤 종류의 이점이 있지만 실제로는 적절하지 않은 것 같습니다.

여기에 이미지 설명 입력

제품 목록을 렌더링하는 부분은 모든 종류의 다른 제품 목록을 렌더링하는 데 사용할 수 있습니다. 전체 화면 이미지 슬라이더에서 작은 10x10 픽셀 썸네일까지. 그리고 가능한 가장 큰 목록을 수용하기 위해 축소판이 전체 화면 이미지를 요청하도록 강제하고 싶지 않습니다.

The current logic is basically view-logic. By calling the partial list for the place in question.

(This is a distilled version of our current approach)

Landingpage.cshtml

<ul>
Html.RenderAction("ListRandom", "Product", new { Category = feed.catId});
</ul>

ProductController.cs

    public PartialViewResult ListRandom(int? CategoryId)
    {
        var model = new ProductListModel { ProductsRandomGet(CategoryId) };
        return PartialView("_ProductList", model);
    }

_ProductList.cshtml

<li>
      <a href="@item.href">
          <img alt="@item.Name" 
               src="data/product/35x44/@item.Image" />  /* Image Size */ 
          <div class="listItemInfo">
               @item.Name    
               @item.Price                    
          </div>
      </a>
</li>

While this works, it leads to a lot of duplicate html for all the different kinds of product lists. The html for the different lists are almost identical, and all the differences can be put in CSS.

But not the image src property

CodeCaster

I don't think the controller is appropriate, because the controller doesn't do display logic. That's the view's responsibility. It's still not clear to me from your question where the decision is currently made which image size to include, where the image sizes come from (do you use a handful of fixed sizes, or can they vary per image?) or how many scenarios there are.

예를 들어 부분보기를 사용하여 다음과 같이 이미지 만 표시 할 수 있습니다 (예 ProductImageSmall:보다 재사용 가능하지만 덜 구체적 임 ProductImageShoppingCart).

<img src="data/product/35x44/@item.Image" [...] /> 

그런 다음 상위 뷰에서 항목 컬렉션을 렌더링하는 데 사용할 부분을 결정할 수 있습니다.

모델에 해상도를 포함 할 수도 있습니다.

<img src="data/product/@(item.ImageWidth)x@(item.ImageHeight)/@item.Image" [...] /> 

또는 그 치수를 ViewBag대신 붙입니다.

목록에 대한 모든 방법에 대한 찬반 양론이 너무 많으므로 더 구체적인 답변을 원하면 질문 범위를 더 좁히십시오.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

JLabel에서 내 이미지의 올바른 경로는 무엇입니까?

분류에서Dev

머티리얼 디자인-목록보기에서 아이콘의 올바른 크기는 무엇입니까?

분류에서Dev

Pelican에서 생성 한 html을 이미지에 연결하기 위해 경로를 표현하는 올바른 방법은 무엇입니까?

분류에서Dev

올바른 srcset 크기 순서 및 미디어 쿼리는 무엇입니까?

분류에서Dev

썸네일보기에서는 이미지가 옆으로 보이지만 열면 올바른 이유는 무엇입니까?

분류에서Dev

고정 된 크기의 청크로 바이너리 파일을 읽고 모든 청크를 Vec에 저장하는 올바른 방법은 무엇입니까?

분류에서Dev

이미지에서 올바른 직사각형을 선택하는 방법은 무엇입니까?

분류에서Dev

유지 관리되는 virtualenv 서비스의 올바른 위치는 무엇입니까?

분류에서Dev

유지 관리되는 virtualenv 서비스의 올바른 위치는 무엇입니까?

분류에서Dev

마이크로 서비스 그룹을 지정하는 데 좋은 / 올바른 용어는 무엇입니까?

분류에서Dev

XAML에서 이미지를 정의하는 올바른 방법은 무엇입니까?

분류에서Dev

API에서 HTML로 이미지를 보내는 올바른 방법은 무엇입니까?

분류에서Dev

다른 문자열 길이로 올바른 크기의 태그를 얻는 방법은 무엇입니까?

분류에서Dev

angularJs 지시문에서 templateUrl의 올바른 경로는 무엇입니까?

분류에서Dev

AS3의 바이트 배열에서 GIF 이미지 크기를 얻는 방법은 무엇입니까?

분류에서Dev

다른 이미지 내에서 특정 이미지의 위치를 얻는 방법은 무엇입니까?

분류에서Dev

올바른 위치에 올바른 문자열을 추가하지 않는 이유는 무엇입니까?

분류에서Dev

JDK에서 src.zip 파일의 올바른 위치는 무엇입니까?

분류에서Dev

URL에서 #bookmark 및? parameters의 올바른 위치는 무엇입니까?

분류에서Dev

다른 크기의 이미지가 numpy에서 동일한 크기로로드되는 이유는 무엇입니까?

분류에서Dev

Android에서 회전 된보기를 올바른 방향으로 이동하는 방법은 무엇입니까?

분류에서Dev

고정 크기 div에서 큰 이미지를 올바르게 표시하는 방법은 무엇입니까?

분류에서Dev

페이지로 유연하게 크기를 조정할 때 메인 콘텐츠에 오른쪽 사이드 바를 올리는 방법은 무엇입니까?

분류에서Dev

올바른 순서로 인쇄되지 않는 이유는 무엇입니까?

분류에서Dev

GitHub에서 복제 된 저장소의 올바른 크기를 확인하는 방법은 무엇입니까?

분류에서Dev

VOB에서 올바른 크기로 프레임을 저장하는 방법은 무엇입니까?

분류에서Dev

보케에서 기존 이미지의 범위와 위치를 변경하는 방법은 무엇입니까?

분류에서Dev

크로스 플랫폼 지향 웹 서비스를 구성하는 올바른 방법은 무엇입니까?

분류에서Dev

자바 스크립트에서 이미지 위치를 전환하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    JLabel에서 내 이미지의 올바른 경로는 무엇입니까?

  2. 2

    머티리얼 디자인-목록보기에서 아이콘의 올바른 크기는 무엇입니까?

  3. 3

    Pelican에서 생성 한 html을 이미지에 연결하기 위해 경로를 표현하는 올바른 방법은 무엇입니까?

  4. 4

    올바른 srcset 크기 순서 및 미디어 쿼리는 무엇입니까?

  5. 5

    썸네일보기에서는 이미지가 옆으로 보이지만 열면 올바른 이유는 무엇입니까?

  6. 6

    고정 된 크기의 청크로 바이너리 파일을 읽고 모든 청크를 Vec에 저장하는 올바른 방법은 무엇입니까?

  7. 7

    이미지에서 올바른 직사각형을 선택하는 방법은 무엇입니까?

  8. 8

    유지 관리되는 virtualenv 서비스의 올바른 위치는 무엇입니까?

  9. 9

    유지 관리되는 virtualenv 서비스의 올바른 위치는 무엇입니까?

  10. 10

    마이크로 서비스 그룹을 지정하는 데 좋은 / 올바른 용어는 무엇입니까?

  11. 11

    XAML에서 이미지를 정의하는 올바른 방법은 무엇입니까?

  12. 12

    API에서 HTML로 이미지를 보내는 올바른 방법은 무엇입니까?

  13. 13

    다른 문자열 길이로 올바른 크기의 태그를 얻는 방법은 무엇입니까?

  14. 14

    angularJs 지시문에서 templateUrl의 올바른 경로는 무엇입니까?

  15. 15

    AS3의 바이트 배열에서 GIF 이미지 크기를 얻는 방법은 무엇입니까?

  16. 16

    다른 이미지 내에서 특정 이미지의 위치를 얻는 방법은 무엇입니까?

  17. 17

    올바른 위치에 올바른 문자열을 추가하지 않는 이유는 무엇입니까?

  18. 18

    JDK에서 src.zip 파일의 올바른 위치는 무엇입니까?

  19. 19

    URL에서 #bookmark 및? parameters의 올바른 위치는 무엇입니까?

  20. 20

    다른 크기의 이미지가 numpy에서 동일한 크기로로드되는 이유는 무엇입니까?

  21. 21

    Android에서 회전 된보기를 올바른 방향으로 이동하는 방법은 무엇입니까?

  22. 22

    고정 크기 div에서 큰 이미지를 올바르게 표시하는 방법은 무엇입니까?

  23. 23

    페이지로 유연하게 크기를 조정할 때 메인 콘텐츠에 오른쪽 사이드 바를 올리는 방법은 무엇입니까?

  24. 24

    올바른 순서로 인쇄되지 않는 이유는 무엇입니까?

  25. 25

    GitHub에서 복제 된 저장소의 올바른 크기를 확인하는 방법은 무엇입니까?

  26. 26

    VOB에서 올바른 크기로 프레임을 저장하는 방법은 무엇입니까?

  27. 27

    보케에서 기존 이미지의 범위와 위치를 변경하는 방법은 무엇입니까?

  28. 28

    크로스 플랫폼 지향 웹 서비스를 구성하는 올바른 방법은 무엇입니까?

  29. 29

    자바 스크립트에서 이미지 위치를 전환하는 방법은 무엇입니까?

뜨겁다태그

보관