SHORT:
如何让控制器返回当前视图或只是简单地不做任何事情?如何?控制器不返回任何内容/当前视图
LONG:
我有一个局部视图,我创建了一个imagelider。 它包含一个链接,它向控制器发送请求以获取下一个图像(使用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");
}
就像我所期待的,但没有答案。下面是一个令人耳目一新的页面,我甚至不喜欢。因为我的javascript/jquery更新了用户界面,并且服务器端没有什么更新用户界面,只是期望一个标志来查看我的控制器是否成功执行某个任务。如果是的话,我更新用JavaScript/jQuery的用户界面,如果不是,那么只用它更新某些东西(如复选标记)。我喜欢保留所有其他页面内容,因为它没有刷新效果,因此不会为用户操作杀死JavaScript更改。下面的答案。不工作,因为它返回空白视图。 – AKS 2015-06-22 07:31:07