Строка превращается в ноль при передаче в другое действие - PullRequest
0 голосов
/ 03 декабря 2011

Я передаю 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 голосов
/ 03 декабря 2011

MVC сопоставляет переменные маршрута с параметрами действия по имени, а имена ваших параметров противоречивы. При перенаправлении вы присваиваете строку search. но в вашем действии Details вы смотрите переменную с именем id. Вам нужно переключить одно или другое, чтобы они использовали одно и то же имя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...