Domanda

Ho una vista in cui io uso un naming-convegno sul mio testo campi, per indicare cosa dovrebbe essere fatto con il contenuto una volta che è inviato di nuovo al mio controllo.

Il formato è simile a:

<input type="text" name="RegistrationLine#ID" /> per gli aggiornamenti

<input type="text" name="CreateRegistrationLine#LineNumber" /> per creare

Ora, poiché sto usando questo Naming e congressi, regolare il modello di legame non è possibile. Ma ho letto un po 'sull'argomento e fatto trovare un po' di un'indicazione che sarebbe stato possibile scrivere un modello personalizzato legante, che dovrebbe essere in grado di aiutare analizzare e legare questi elementi del modulo e istanziare correttamente gli oggetti.

Si prega di leggere: Bind formValue alla proprietà di diversi nome, ASP.NET MVC

Questo è un po 'simile a quello che sto facendo eccezione, ho la complessità aggiuntiva di avere informazioni allegate nel formelement-nome che sto cercando di legarsi a.

Sono io fuori strada qui? e se non, può qualcuno di voi cadere qualche righe di codice per mostrare come si potrebbe iniziare questo modello-legante off ..

Se questo è un approccio molto male per quello che sto veramente cercando di realizzare, mi piacerebbe sentire i suggerimenti per approcci migliori. Basta notare che quello che voglio essere in grado di fare è inviare di nuovo entrambi gli aggiornamenti e crea in un colpo solo.

È stato utile?

Soluzione

I kinda sono d'accordo con @jfar e @omar. Non credo che un modello personalizzato legante è dove si vuole essere in questo caso.

È possibile passare un tipo complesso alla vista e semplicemente utilizzare il fermo come @jfar menzionato.

id="Model.Person.Name.FirstName" sarà lieto di associare a un nome persona oggetto che ha una classe in esso chiamato nome che ha una proprietà chiamata FirstName.

Ora, se si vuole fare alcuni controlli speciali sui dati si potrebbe implementare una classe parziale che avrebbe fatto le convalide ecc e compilare gli errori ModelState.

public partial class Name
{
  public void Validate(){ }
  public int CreateRegistrationLine(){ }
  public bool DoSpecialActions(){ }
}

E 'un po' poco chiaro che cosa le vostre azioni speciali stanno facendo così il mio esempio di cui sopra non può essere quello che vuoi.

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