MVC - 无法使用RedirectToAction传递参数

时间:2015-10-20 22:30:14

标签: asp.net-mvc

这是一个方法(缩写),如下所示:

    [HttpGet]
    public ActionResult SearchForCompanies(CompanySearch companySearch)
    {
        if (companySearch == null)
            companySearch = new CompanySearch();

        ...
        ...

        return View(companySearch);
    }

上述方法是在同一控制器中重定向到以下方法:

<table id="table"></table>

在重定向上,SearchForCompanies的HTTPGet版本被成功调用。但是,companySearch参数的值始终为NULL,即使在进行重定向调用时它具有值。所以我不能正确传递参数。

1 个答案:

答案 0 :(得分:1)

为了将复杂对象传递给action方法,可以使用

CompanySearch search = new CompanySearch();
return RedirectToAction("SearchForCompanies", "Company", search);

将序列化CompanySearch的所有属性以查询字符串参数。但是这将

  1. 创建一个丑陋的网址
  2. 抛出异常是超出查询字符串限制,
  3. 如果模型的任何属性是复杂对象,则
  4. 会失败 收藏品似乎属于您的财产 CompanyList(查询字符串变成类似的东西 ...&CompanyList=System.Collections.Generic.List<...>&...