RedirectToAction с параметром не работает

Я пытаюсь перенаправить на другое действие в том же самом контроллере, действие называется индексом

[HttpGet]
public ActionResult Search(string city)
{
    return RedirectToAction("Index", "Rentals", new { CityName = city });

}

это действие индекса

[HttpPost]
public ActionResult Index(String CityName)
{


}

я что-то упускаю?


person kayze    schedule 25.07.2014    source источник
comment
Что произойдет, если вы измените атрибут с HttpPost на HttpGet?   -  person Scott Prokopetz    schedule 25.07.2014
comment
если вы ищете какой-то взлом, например здесь   -  person Div Tiwari    schedule 24.01.2020


Ответы (3)


Вы пытаетесь перенаправить действие, которое ищет подходящее действие, но в этом случае нет действия get, поэтому вам нужно добавить метод get для принятия перенаправления. Если хотите, можете проверить HTTPGET или POST внутри метода.

[HttpPost]<---- Remove this 
public ActionResult Index(String CityName)
{


}
person Chamika Sandamal    schedule 25.07.2014

Измените HttpPost на HttpGet

[HttpGet]
public ActionResult Index(String CityName)
{


}

Потому что всякий раз, когда вы вызываете Action, сначала вызывается метод GET.

person Community    schedule 25.07.2014

Поскольку два действия находятся в одном контроллере, вы можете вызвать метод Index непосредственно из Search следующим образом:

return Index(city);

не обязательно использовать метод RedirectToAction.

person ssett    schedule 25.07.2014