Вот метод (сокращенно), который выглядит следующим образом:MVC - Невозможно передать параметр с RedirectToAction
[HttpPost]
public ActionResult SearchForCompanies(FormCollection collection)
{
CompanySearch search = new CompanySearch();
search.CompanyList = CompanyData.GetList();
return this.RedirectToAction("SearchForCompanies", "Company", new {companySearch = search});
}
Описанный выше метод перенаправляет к методу ниже в том же контроллере:
[HttpGet]
public ActionResult SearchForCompanies(CompanySearch companySearch)
{
if (companySearch == null)
companySearch = new CompanySearch();
...
...
return View(companySearch);
}
При переадресации, HTTPGet-версия SearchForCompanies получает вызов успешно. Однако значение параметра companySearch всегда равно NULL, даже если оно имеет значение при вызове перенаправления. Поэтому я не должен правильно передавать параметр.
Вы не можете пройти сложный объект таким образом. Вы можете использовать 'return RedirectToAction (« SearchForCompanies »,« Компания », поиск);« но если какие-либо свойства «CompanySearch» содержат свойства, которые являются сложными объектами или коллекциями (что, по-видимому, в вашем случае), это не удастся, и всегда существует риск превышения лимита строки запроса и исключения исключений –
Спасибо. Я должен был знать это, потому что раньше я сталкивался с этим. Если вы напишете это как ответ, я приму это. –