Sto tentando di visualizzare una vista parziale utilizzando un metodo di supporto personalizzato. L'unico problema è che non riesco a superare questo problema di sintassi. Il modello impostato per questo file cshtml è una collezione IEnumerable di modelli che ho definito Operazione. Sono sicuro che questa è una soluzione facile. Ecco un esempio di quello che sto vedendo:Problema di sintassi- Razor MVC4
ho questo blocco di codice:
@using(Html.BeginForm()) {
<div id="editor_rows">
@foreach (var item in Model){
Html.RenderPartial("OperationEditorRow", item);
}
</div>
}
Questo mi dà il seguente errore in fase di esecuzione:
Unexpected "{" after "@" character. Once inside the body of a code block (@if {}, @{}, etc.) you do not need to use "@{" to switch to code.
Ma se mi tolgo la @ firmare davanti all'istruzione foreach, tutto è interpretato come testo normale. Così ho provato mettendo un @ davanti Html come segue:
@using(Html.BeginForm()) {
<div id="editor_rows">
@foreach (var item in Model){
@Html.RenderPartial("OperationEditorRow", item);
}
</div>
}
Questo ritorna con un errore di compilazione che dice:
Cannot implicitly convert type void to object
Se eseguo il progetto da qui, ottengo un errore di runtime che dice:
The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments
Suppongo che questo sia correlato all'errore precedente. Se qualcuno ha un suggerimento per me, per favore aiutatemi. s 'intorno alla vostra chiamata di rendering come @ {...} RenderPartial
Prova a usare 'Parziale 'invece di' RenderPartial' – lucask
Il tuo codice sembra giusto. Prova a riavviare Visual Studio. Questo è stato sapere per risolvere una serie di anomalie come questa. –
Grazie per entrambi i tuoi suggerimenti. Li ho provati, ma vedo ancora gli stessi errori. Penso che il cuore del problema sia nel secondo messaggio di errore: Impossibile convertire in modo implicito il tipo void all'oggetto –