Domanda

Ho una visione che contiene 2 caselle di riepilogo: Pubblico & Locale

Sto cercando di inviare un modulo che contiene l'indice selezionato di entrambi per il mio controller, che ha un metodo di azione di questa firma:

public JsonResult Submit(Audience aud, Locale loc)
{
// do stuff
}

Il problema che sto avendo è sia Pubblico Locale e hanno una proprietà ID, in modo che il modello Binder è un po 'confuso su cui assegnare i valori selezionati. Ottenere sia assegnato il valore '1', quando Pubblico dovrebbe avere '2' e Locale dovrebbe avere '1'

La domanda è: come posso ottenere la pagina di distinguere tra i due quando è la presentazione? Abbiamo provato anteponendo il valore ID per Locale con "locale.", Così lo stringa di parametro che viene passato come i dati al controller sembra "&locale.id=1&audience.id=2" ma questo non sembra funzionare.

Qualche suggerimento? Se è necessario ulteriori informazioni, io li fornisce.

Grazie

Dave

È stato utile?

Soluzione

Usa:

public JsonResult Submit([Bind(Prefix = "audience")]Audience aud,[Bind(Prefix = "locale")]Locale loc)
{
// do stuff
}

Ogni campo pubblico dovrebbe avere il prefisso "pubblico" nel nome nel campo HTML: audience.id, audience.name, ...

<input id="audience_name" name="audience.Name" type="text" value="" />

Altri suggerimenti

Si dovrebbe avere un ViewModel specifica per prendere dati nel vostro Azione Invia. Questo oggetto dovrebbe avere AudienceId e LocaleID. Quando si creano i menù a discesa è necessario creare loro con nomi che corrispondono a ciò che ci si aspetta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top