Asp.net HTTPPOST 之后的 MVC 刷新页面



我对ASP有问题。我从许多页面调用此操作方法,我需要在刷新页面后,但我没有指向用户所在页面的链接。

public ActionResult Hide<T>(T item, User user) where T : IHidable
{
    //... Some action
    return SomeThingWhatINeedAndRefreshPage();
    //Now I use this, but I do not want to redirect user to Home
    //return RedirectToAction("Index", "Home");
}

您可以获取如下所示的操作和控制器名称,并使用这些值调用RedirectToAction

string actionName = this.ControllerContext.RouteData.Values["action"].ToString(); string ctrlName= this.ControllerContext.RouteData.Values["controller"].ToString();

一种可能性是将客户端所在的原始页面作为附加参数传递:

public ActionResult Hide<T>(T item, User user, string returnUrl) where T : IHidable
{
    //... Some action
    return Redirect(returnUrl);
}

现在,当您构建此控制器操作的 url 时,只需包含当前请求中的 returnUrl 参数。

这对我保留我的查询字符串很有用:

return Redirect(Request.UrlReferrer.ToString());

我基于@YuriyP留下的评论,并决定将其作为完整的答案.
这可能会破坏某些开发模式,因为您可能希望在没有完整回发的情况下异步更新页面的一部分。

最新更新