ショート:
コントローラに現在のビューを返すか、単に何もしないでください。HOW?コントローラは何も返しません/現在のビュー
LONG:
私はイメージライダーを作成しました。 次の画像を取得するためにコントローラに要求を送信するリンクが含まれています(ajaxを使用)。 コントローラは、次のイメージをフェッチしてViewDataに格納し、部分ビュー(上記のもの)を送り返します。
現在、コントローラが最後のイメージに到達すると、コントローラは同じイメージを(再フェッチすることによって)リターンしますが、まだ新しいビューを作成します。つまり、クライアント/ブラウザが再解析されます。 「同じ」データ。
これは多少最適ではないようです。
私がしたいのは、コントローラが最後の画像に達すると、何もしないことです。
nullを返した場合、ビューは空の内容で更新されます。
私はビュー/クライアント/ブラウザには、何も保持し、コントローラは単に何もしないようにします。
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult GetNextImage(...)
{
if(Request.IsAjaxRequest())
{
if(CURRENT_IMAGE != LAST_IMAGE)
{
Image image = GetNextImage(...);
var partialViewResult = new PartialViewResult();
partialViewResult.ViewName = "ImageSlide";
partialViewResult.ViewData.Model = image;
return partialViewResult;
}
else
{
// DO NOTHING, HOW?
}
}
return RedirectToAction("Error", "Home");
}
のおかげで、しかし、応答なし...私は以前それを考えていなかったと信じてすることはできません。下の1つは、私が好きではない、さわやかなページです。私のjavascript/jqueryがユーザーインターフェイスを更新したので、コントローラが何らかのタスクの実行に成功したかどうかを確認するフラグが必要なUIを更新するためのサーバー側からは何もありません。はいの場合は、javascript/jqueryでUIを更新し、そうでない場合はチェックマークなどの特定のものを再度更新します。それ以外のページのコンテンツは、ユーザーアクションのためにjavascriptの変更を殺すリフレッシュ効果なしでそのまま残しています。以下のans。それは空白のビューを返すように動作しません。 – AKS