字符串在传递给另一个动作时变为null

时间:2011-12-02 23:24:14

标签: asp.net-mvc-3 .net-4.0

我正在将search字符串从Search操作传递到detail操作,但是在detail操作中收到该字符串后,结果显示为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>());
}

1 个答案:

答案 0 :(得分:0)

MVC按路径将变量与动作参数匹配,参数名称不一致。在重定向中,您将字符串分配给search。但是在您的“详细信息”操作中,您正在查找名为id的变量。您需要切换一个或另一个,以便它们使用相同的名称。