1

私は自分のFlickrページを作成しているので、Flickrの写真やお気に入りなどを表示します。

私はasp.netmvc3テクノロジーを使用してこれを行っています。この小さなプロジェクトは、実際に私が自分で完成させようとしている最初の実際のプロジェクトです。MVCの基本を理解しているかどうかを確認します。

そこで、Flickrで認証し、リクエストのJSON応答を取得できるように小さなフレームワークを設定しました。(画像のデータを含む)

これらの画像をリストとしてレンダリングします。そのためのビューは次のとおりです。

<body>
<div id="container">
<div id="slideshow">
    <ul id="slides">
        @Html.Partial("PhotoList", Model)
    </ul>
</div>
</div>

これは、次のタイプを使用した強く型付けされたビューです。

    public class FlickrPhotoCollection
    {
       public string size { get; set; }
       public List<FlickrPhoto> photo { get; set; }
    }

ご覧のとおり、写真オブジェクトとサイズのリストが含まれています。size属性は、画像のサイズを設定するためのものです。("t" =サムネイル、 "m" =中、....)

次に、他の2つの部分ビューが使用されます。

PhotoList:

  @model FlickrPhotoCollection               
  @ViewBag.Size = @Model.size;

  @foreach (FlickrPhoto p in Model.photo)
  {
      <li>                   
        @Html.Partial("Photo", p)          
      </li>
   }

写真:

@model FlickrPhoto

<img src="@(Model.display()" name="modal" class="photo" ref="@Model.owner" flickrId="@Model.id" />

FlickrPhotoの表示方法は、要求されたサイズに応じて実際の画像へのパスを返します。

private string display(string size)
    {
        if (!string.IsNullOrEmpty(size))
        {
            size = "_" + size;
        }
        return String.Format("http://farm{0}.static.flickr.com/{1}/{2}_{3}{4}.jpg", farm, server, id, secret, size);
    }

ご覧のとおり、このメソッドにはサイズパラメーターが必要であり、ビューでサイズパラメーターを渡していません。

私の質問:サイズパラメータを正しく渡すことができるように、コードで何を変更する必要がありますか?

その結果、コントローラーでサイズパラメーターを設定でき、ビューはこのパラメーターに応じて異なるサイズの画像をレンダリングします。

これが私のコントローラーをどのように見せたいかです:

 public ActionResult PhotoViewer()
    {
        FlickrMethods flickrmethods = new FlickrMethods();
        FlickrPhotoCollection photocollection = flickrmethods.getPublicPhotos("57820970@N06", "1");
        photocollection.size = "b";
        return View(photocollection);
    }

もう一度質問を繰り返します。部分ビュー「写真」で使用されるFlickrPhotoクラスの表示メソッドにサイズ「b」を渡すにはどうすればよいですか。

私はそれを理解するのに十分明確にしたことを望みます。

ありがとう!

4

1 に答える 1

1

sizeプロパティをFlickrPhotoクラスに配置し、それに応じてloadメソッドで設定する必要があります。次に、写真ビューでこれを置き換えることができます。

<img src="@(Model.display()" name="modal" class="photo" ref="@Model.owner" flickrId="@Model.id" />

これとともに:

<img src="@(Model.display(Model.size))" name="modal" class="photo" ref="@Model.owner" flickrId="@Model.id" />
于 2012-04-29T12:25:55.197 に答える