Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [MVC] Form di ricerca, passaggio ViewModel

    Ciao a tutti

    sto sviluppando un applicazione di prova per imparare ad usare MVC.
    Ho già un piccolo problema...
    Ho creato un form di ricerca dati che utilizza un ViewModel come mappatura dei campi del form stesso, creando una View tipizzata.
    E' presente un text box (Ragione Sociale) e una dropDownList (Tipo).
    Per effettuare la ricerca ho aggiunto un Ajax.ActionLink. Vorrei passare al metodo che riceve i dati lo stesso modello che ho utilizzato per creare il form, ma, mettendo un breakpoint sul metodo, il modello che mi arriva è NULL e non è impostato con i criteri di ricerca inseriti...
    Sicuramente sbaglio qualcose nel Ajax.ActionLink, vi riporto qua sotto la chiamata e il metodo...

    ActionLink sulla vista
    codice:
    Ajax.ActionLink("Cerca", MVC.Rubrica.Cerca(Model), new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "SearchResult" })
    Metodo che riceve i dati su cui effettuare la ricerca che attualmente non fa altro che tornare indietro i criteri di ricerca
    codice:
     
    [AcceptVerbs(HttpVerbs.Post)]        
    public virtual ActionResult Cerca(RubricaSearchViewModel modData)         
    {             
    // modData mi arriva NULL
    string content = "";              
    if (ModelState.IsValid)                 
      content = modData.RagioneSociale + " - " + modData.Tipo.SelectedValue.ToString();                          
    return Content(content);
    }
    Questo è la classe del ViewModel
    codice:
    public class RubricaSearchViewModel     
    {         
    public string RagioneSociale { get; set; }         
    public SelectList Tipo { get; set; }          
    
    public RubricaSearchViewModel()
     {             
    BLL.Rubrica.TipiBLL RubTipiBLL = new BLL.Rubrica.TipiBLL();              
    
    RagioneSociale = "";             
    Tipo = new SelectList(RubTipiBLL.getRubricaTipi(),"ID","Descrizione");
    }     
    }
    Grazie a chiunque riesca a darmi una mano.
    Ciao!!

  2. #2
    MM... forse hai sbagliato solo una piccola cosa:

    codice:
    Ajax.ActionLink("Cerca", "Cerca", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "SearchResult" });
    Cioè, come secondo parametro devi passare il nome della View a cui indirizzare il Submit per la richiesta! (Quella che viene chiamata ActionName)

    Non riesco a capire cosa volessi fare con: MVC.Rubrica.Cerca(Model)... volevi passare il modello dei dati già valorizzato? Tranquillo, per quello ci pensa già il Binder automatico di MVC quando gli invii la richiesta.

    Spero di essere stato d'aiuto!
    Chi sbaglia, apprende meglio di chi non ha mai commesso errori.
    DOT.NET Addicted since 2006 (My Blog)

  3. #3
    Si, l'idea era quella di passare il model valorizzato con i dati inseriti su form.

    Ti spiego come mai ho messo MVC.Rubrica.Cerca(Model)

    Ho installato il plugin T4 su VS2010 e questo mi da la possibilità di utilizzare la dicitura MVC.Rubrica.Cerca(Model) per chiamare direttamente il metodo "Cerca" all'interno del controller "Rubrica" e farmi restituire l'ActionResult.
    Vedendo che comunque ActionLink accetta anche come secondo parametro un ActionResult, trovo comodo poter utilizzare il plugin per avere meno stringhe possibili all'interno del codice.

    Ho provato a mettere "Cerca", il Model non arriva più null, ma arriva con i valori di default impostati alla creazione della View e non quelli che inserisco io sul form...
    Qualche idea?

    Ma il form deve essere di tipo Ajax.BeginForm oppure può rimanere Html.Beginform?

    Grazie mille!

  4. #4
    Ajax.BeginForm che al suo interno accetta anche l'Action da richiamare per il Submit!
    Chi sbaglia, apprende meglio di chi non ha mai commesso errori.
    DOT.NET Addicted since 2006 (My Blog)

  5. #5
    Ora il model non mi arriva più null, ma con i valori impostati di default e non quelli inseriti su form

  6. #6
    Rimuovi l'ActionLink, inserisci in input type="submit" e riprova
    Chi sbaglia, apprende meglio di chi non ha mai commesso errori.
    DOT.NET Addicted since 2006 (My Blog)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.