0

当我提交表单时,我有 2 个索引操作发布和获取,发布操作返回:

return RedirectToAction("Index");

编辑:

我的get Index Action可以获取一些参数来支持搜索和过滤返回的List。像这样:

public ActionResult Index(string search = "", long searchItem = 0, long RC = 0, long Page = 1)

我使用了分页列表,并且有一个DropDownList显示每页中的行数,我编写了一个 jquery 脚本来更改此下拉表单。提交时,当表单提交时,RedirectTAction 我丢失了以下代码:

[HttpPost]
public ActionResult Index(FormCollection collection, string search = "") {

    long RowCount = 0;
    long.TryParse(string.Format("{0}", collection["RowCount"]), out RowCount);

//More implement

return RedirectToAction("Index", new { RC = RowCount, search = search, searchItem = Id });

那么有没有办法在 Post Action 中获取 Url 或 url 参数?在这种情况下你有什么建议?

4

1 回答 1

1

您可以在重定向之前捕获 RouteValueDictionary 中的所有查询字符串参数:

var query = new RouteValueDictionary(
    Request
        .QueryString
        .Keys
        .OfType<string>()
        .ToDictionary(key => key, key => (object)Request.QueryString[key])
);
return RedirectToAction("Index", query);

这只会保留查询字符串参数。如果要添加路由值和 POST 值,可以将它们连接到结果中。

于 2012-04-17T10:03:24.543 回答