Итак, я хочу создать новое представление в моем приложении MVC, которое позволяет пользователю вводить параметры для поиска. Я хочу передать эти параметры другому View / Controller, и я хочу, чтобы контроллер вызвал действие под названием «Search», чтобы обработать эти параметры и вернуть правильные данные. Однако, когда я пытаюсь «Перенаправить», это вызывает у меня проблему. Он говорит, что ресурс не может быть найден,
The view 'Search' or its master was not found or no view engine supports the searched locations.
The following locations were searched:
~/Views/Question/Search.aspx
Это код.
[HttpPost]
public ActionResult HandleForm()
{
SearchQuery search = new SearchQuery();
if(Request["QuestionID"].Trim()!="")
search.QuestionID = Convert.ToInt32(Request["QuestionID"].Trim());
return RedirectToAction("Search", "Question");
}
Однако, если я изменю «Поиск» на «Индекс», он загружает нужную мне страницу, потому что он открывает представление на этой странице. Это не вызывает поисковое действие. Почему этот метод возвращает представление, когда каждый прочитанный пример утверждает, что необходимо передать имя действия?
Для тех, кому интересно, это моя информация о маршрутизации global.asax
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
И последнее, но не менее важное: мне еще предстоит выяснить, как передать эти параметры, но я надеюсь, что это не будет слишком большой дополнительной работой, когда я смогу понять, почему это не работает должным образом.