[MVC3] Hoe netjes data returnen in andere view?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 23:49
Ik zit met een, eigenlijk heel simpel, probleempje; ik heb een form rechtsboven in mijn site met een zoekveld. Als dat zoekveld wordt ingevuld en gepost wordt deze door een method met het [HttpPost] attribuut afgevangen en de data opgevraagd. Wat ik echter wil is deze data niet returnen naar het zoekveld, maar een aparte pagina inladen met de zoekresultaten.

Wat ik dus geprobeerd heb is iets van 'return View("viewnaam", data)', maar dan raakt hij in een endless loop met een stackoverflow tot gevolg, tevens heb ik een 'return Redirect("viewnaam")' geprobeerd, maar dan krijg ik weer gezeur dat ik geen redirect mag doen nadat de headers verstuurd zijn. Wat is nou eigenlijk een nette oplossing hiervoor?

Onderstaand is de code voor mijn controller:

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    public class SearchController : Controller
    {
        private readonly ITagRepository _repository;

        public SearchController(ITagRepository repository)
        {
            _repository = repository;
        }

        public ActionResult Form()
        {
            return PartialView("_Form");
        }

        [HttpPost]
        public RedirectResult Form(SearchQuery searchQuery)
        {
            IEnumerable<Blogpost> tags = _repository.Tags.Where(tag => tag.Value.Contains(searchQuery.SearchString)).SelectMany(tag => tag.Blogposts);

            // het stuk waar het om gaat; wat doe ik met de data?
            return Redirect("/Search/Results");
        }
    }

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Een search is in principe idempotent en dus kun je het volgens mij het makkelijkst oplossen door gewoon geen gebruik te maken van een post, maar van een get request.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 17:06

gorgi_19

Kruimeltjes zijn weer op :9

Je kan in je view / masterpage toch de search-bar naar een aparte 'pagina' posten (door middel van meerdere forms op een pagina)?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • DEiE
  • Registratie: November 2006
  • Laatst online: 15:15
Wellicht is RenderAction wat je zoekt

Acties:
  • 0 Henk 'm!

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
gorgi_19 schreef op woensdag 26 oktober 2011 @ 08:04:
Je kan in je view / masterpage toch de search-bar naar een aparte 'pagina' posten (door middel van meerdere forms op een pagina)?
QFE. Dat is naar alle waarschijnlijkheid inderdaad wat Avalaxy zoekt.

C#:
1
Html.BeginForm("Action", "Controller", FormMethod.Post)