动作结果刷新当前页面

obj*_*box 2 c# asp.net-mvc actionresult

我想从某些操作方法中返回一个结果,该结果将强制刷新当前页面。

我写这是为了获得这样的结果:

 public class RefreshResult : ActionResult {

        public override void ExecuteResult(ControllerContext context) {
            Uri referrer = context.HttpContext.Request.UrlReferrer;
            if(referrer == null || string.IsNullOrEmpty(referrer.AbsoluteUri)) {
                return;
            }
            context.HttpContext.Response.Redirect(referrer.AbsoluteUri);
        }
    } 
Run Code Online (Sandbox Code Playgroud)

在我的操作方法中,我只返回新的RefreshResult。它有效,但是我很好奇这种方法的局限性。我不愿意让客户选择直接访问返回此类结果的操作方法,因此我认为我始终能够以这种方式刷新当前页面。我对吗?

我在stackoverflow上发现了这个问题(以及其他几个问题): ActionResult返回到调用它的页面

但是我更感兴趣的是这种方法的局限性,而不是“如何做”。

提前感谢

AIM*_*AIM 5

鲁恩答案是刷新页面的一种方法。另一种是重定向回发送请求的Url,无需自己编写实现,只需在控制器中以常规操作进行即可。

该动作可能看起来像这样

public ActionResult SomeAction()
{
    //do some work here...

    return Redirect(Request.UrlReferrer.ToString());
}
Run Code Online (Sandbox Code Playgroud)