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

时间:2015-01-11 16:42:18

标签: asp.net-mvc asp.net-mvc-5

我有ASP.MVC的问题。我从很多页面调用这个动作方法,我需要刷新页面后,但我没有链接到用户所在的页面。

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");
}

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

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

    return Redirect(returnUrl);
}

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

答案 2 :(得分:0)

这对我来说保留了我的查询字符串:

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

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