4

我有链接

http://localhost:3163/PaymentOrder?AgentCode=&InvoiceNo=&AgentName=&FromDate=&fromDate=12%2F11%2F2013&FromDate=12%2F11%2F2013+9%3A08%3A01+SA&toDate=12%2F11%2F2013

单击“删除”按钮后,页面应重定向到“索引”

        return RedirectToAction("Index","PaymentOrder");

但我想保持与第一个相同的链接,我不知道什么方法,请帮助我。谢谢

我可以修复它,我将会话保存在

public ActionResult Index{
  Session["LastPage"] = Request.Url.ToString();
}

在我之后

return Redirect(Session["LastPage"] as String);

4

3 回答 3

2

您可以将查询字符串传递给的第三个参数RedirecToAction

return RedirectToAction("Index","PaymentOrder", new { fromDate = model.FromDate });

或者也传递整个模型,其中包含类似于您的查询字符串的属性

return RedirectToAction("Index","PaymentOrder", new { paymentModel = model });
于 2013-11-12T03:05:44.563 回答
2

由于您的查询字符串很长,最好编写一个扩展方法并使用它来代替,以保持您的控制器精简。我还没有测试过这个,但是这样的东西应该可以工作:

public static RouteValueDictionary ToRouteDictionary(this NameValueCollection nameValues)
{
    if (nameValues == null || nameValues.HasKeys() == false)
        return new RouteValueDictionary();

    var routeValues = new RouteValueDictionary();

    foreach (var key in nameValues.AllKeys)
        routeValues.Add(key, nameValues[key]);

    return routeValues;
}

然后在你的控制器中:

return RedirectToAction("Index","PaymentOrder", Request.QueryString.ToRouteDictionary());
于 2013-11-12T03:24:23.173 回答
1

只是不要重定向而是返回视图,URL 将保持不变。

于 2013-11-12T07:13:40.130 回答