現在の画像、次の画像、前の画像を返すことを知っている Model クラスがあります。
スライドを切り替えるためのアクションを備えたコントローラーがあります。
そのアクションは、前のスライドと次のスライドのボタンを持つ Ajax.BeginForm によってトリガーされます。
ページを更新せずにビューをスライドさせるには、アクションで何ができますか?
これが私がこれまでに思いついたものです:
コントローラー:
public class SlideshowController : Controller
{
static SlideshowModel slideshowModel = new SlideshowModel();
//
// GET: /Slideshow/
public ActionResult Index()
{
return View(slideshowModel);
}
public ActionResult GetCurrentSlideImage()
{
var image = slideshowModel.CurrentSlideImage;
return File(image, "image/jpg");
}
[HttpPost]
public ActionResult SlideshowAction(SlideshowModel model, string buttonType)
{
if (buttonType == ">")
{
slideshowModel.IncrementSlideNumber();
}
if (buttonType == "<")
{
slideshowModel.DecrementSlideNumber();
}
return JavaScript("alert('what to return to update the image?')");
}
}
意見:
@model PresentationWebServer.Models.SlideshowModel
@using (Ajax.BeginForm("SlideshowAction", new AjaxOptions { UpdateTargetId = "result" }))
{
<img src="@Url.Action("GetCurrentSlideImage") " id="result"/>
<br />
<input class="float-left" type="submit" value="<" name="buttonType" id="btn-prev" />
<input class="float-left" type="submit" value=">" name="buttonType" id="btn-next" />
}