将字符串从一个动作传递到同一控制器中的另一个

时间:2011-12-03 00:10:09

标签: c# asp.net-mvc asp.net-mvc-3 asp.net-mvc-3-areas

我正在将搜索字符串中的搜索字符串传递给详细操作,但是在详细接收到详细操作时,结果是null。

我正在使用MVC3和.NET framework 4.0:

public ActionResult Search(string search)
{
    if (string.IsNullOrEmpty(search))
        return RedirectToAction("Index");

    return RedirectToAction("Details", "Invoice", search = search.Trim());
}

public ActionResult Details(string id)
{
    if (string.IsNullOrEmpty(id))
        return RedirectToAction("Index");

    ObjectParameter[] parameters = new ObjectParameter[3];
    parameters[0] = new ObjectParameter("CUSTNMBR", id);
    parameters[1] = new ObjectParameter("StartDate", System.DateTime.Now.Date.AddDays(-90));
    parameters[2] = new ObjectParameter("EndDate", System.DateTime.Now.Date);

    return View(_db.ExecuteFunction<Models.Invoices>("uspGetCustomerInvoices", parameters).ToList<Models.Invoices>());
}

2 个答案:

答案 0 :(得分:0)

您应该能够返回Details(),因为您在同一个控制器中并且它返回一个ActionResult。

答案 1 :(得分:0)

您应该使用:

return RedirectToAction("Details", "Invoice", new { id = search.Trim() });