Domanda

Sono di fronte a un problema davvero strano che mi ha fumato.

Ho un abbastanza semplice scenario in cui ho una visione fortemente tipizzato che è correttamente popolato dal controller sul GET, ma poi quando i messaggi il modulo per il controller, il reqeust è pieno di tutti i giusti valori e il tasto destro nomi per il legante modello predefinito per popolare correttamente uno dei miei oggetti del modello, e il DMB crea l'opject corretta, ma non è mai popola una delle proprietà, sono tutti nel loro stato di default.

Questo stava lavorando prima, gli unici cambiamenti che posso pensare erano che ho provato un modelbinder personalizzato (poi rimosso, doppio controllo per assicurarsi che non sto ancora utilizzando quello), e ho refactoring il modello per avere una base classe con alcuni degli oggetti di scena.

Qualche idea?

È stato utile?

Soluzione 2

ottenuto. Il modello era stata riscritta in modo che naturalmente influenzato la capacità del legante mdoel per popolarlo.

Altri suggerimenti

Uno scenario molto simile - che il DefaultModelBinder è - sostanzialmente - non vincolante per il vostro modello, arrise se volete dare il vostro modello vincolato oggetto lo stesso nome di una delle sue proprietà:

Modello

Public Property ArbitraryName1 As Integer
Public Property Answer As String
Public Property ArbitraryName2 As Boolean

Visualizza

<p/> ... @Model.ArbitraryName1
<p/> Answer: @Html.TextBoxFor(Function(model) model.Answer)
<p/> ... @Html.CheckBoxFor(Function(model) model.ArbitraryName2)

Regolatore

<HttpPost()>
Function Index(answer As Model) As ActionResult
  ' answer is Nothing
End Function

(Utilizzo di ASP.NET MVC 3)

Il nome del param di ingresso non devono essere uguale a qualche nome proprietà dell'oggetto. Ricordate che tutti i dati provenienti da una serie di nome -.> Valore e l'uso vincolante di default i nomi per far funzionare la relazione

ho avuto questo comportamento nascono spostando due proprietà dalla parte superiore della classe da più in basso. Non riesco ancora a capire perché questo ha fermato il legame di un terzo immobile dal lavoro (quindi questa non è una soluzione tanto come un 'guarda fuori'), ma ho ripetuto le cambia più volte e ogni volta che il legame è passato da al lavoro per non funziona. Ho anche scoperto che dopo aver fatto questo cambiamento che a volte dovevo 'Clean' la soluzione per il legame per iniziare a lavorare di nuovo.

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