設定された順序でサムネイル画像の数を読み込むウェブページに部分的なビューが含まれています。サムネイルをクリックすると、残りのウェブページをリロードせずに、クリックされたサムネイルが最初のイメージになり、残りのリストが順番にリストにリロードされます。画像の1つがクリックされたときに、パーシャルビュー内の画像のリストを更新するにはどうすればよいですか?
My PartialViewには、サムネイルをロードし、それぞれUrl.Action
を割り当てる次のコードが含まれています。
<% foreach (var image in (ImageModel)ViewData.Model) { %>
<a href='<%= Url.Action("ImageList", "ImageView", new { imageFolderName = image.Folder, imageFile = ImageHelper.GetImageName(image.Path) }, null) %>'>
<img src="/images/<%= image.Path %>" height="<%=(image.Height/4).ToString() %>" width="<%=(image.Width/4).ToString() %>" alt="" /></a>
<% }%>
私のコントローラは、最初に含むページがロードされた部分ビューをロードするためのActionResult
を持っています。私はまた、PartialViewResult
を返すメソッドを含んでいました。
パブリッククラスImageViewController:私は(「イメージリスト」、「イメージリスト」にUrl.Action
を設定した場合、コントローラ
public ActionResult ImageView(string imageFolderName, string imageFile)
{
return View(new ImageModel(imageFolderName, imageFile));
}
public PartialViewResult ImageList(string imageFolderName, string imageFile)
{
return PartialView(new ImageModel(imageFolderName, imageFile));
}
...サムネイルがまさに私が望むように更新されますが、ページ全体ではなく更新されます
Url.Action
を( "ImageList"、 "ImageView" ...に設定すると、含まれているページの一部の表示が更新される代わりに、そのページがなくなり、部分ページがそれは、空の白いWebページに正しい順序ですべてのサムネイルが表示されることです。
私はnoobです。このシナリオに適用される方法で、jQueryやAjax Q、AについてPartialViewsを理解できませんでした。
PartialViewが含まれているページ内の部分的な表示を更新するのではなく、新しいWebページを読み込む場合、PartialViewを返すコントローラメソッドは何ですか?
そして、これがどのように行われるかを示す資料や説明はありますか?
入力ギボンをありがとう。まだいくつかの問題があります。最初に、ビューと部分ビューが同じ名前を持っていて、たとえ異なる拡張機能を呼び出しても<%Html.RenderPartial( "ImageView"); %>はスタックオーバーフローの例外をスローします。そこで、コントローラPartialViewResult ImageListを使って部分ビューのImageList名に戻りました。 – user588582
続き jQueryスクリプトを追加して、div内の画像を正しいIDで、画像をclass = "image"にしました。私はそれが何をしようとしているのかを見ることができます。しかし、コントローラにブレークポイントを置き、イメージをクリックすると、Request.IsAjaxRequest関数はfalseを返します。 あなたの提案は、私が必要とするものに近いと思います。私はより良い理解を得るためにjQueryの本を買った。再度、感謝します。 – user588582