2011-11-10 17 views
11

Sto costruendo un app MVC3 per la mia classe web dinamico, e durante il tentativo di rendere un parziale, ottengo il seguente errore:ASP.NET MVC3 @ Html.RenderPartial sta gettando CS1502 Errore

CS1502: Il miglior overload metodo match per 'System.Web.WebPages.WebPageExecutingBase.Write (System.Web.WebPages.HelperResult)' ha alcuni argomenti non validi

Ora, il codice che sto eseguendo è questa:

<div> 
    <h2>Shipping Address</h2> 
    @Html.RenderPartial("_AddressPartial"); 
</div> 

Ora, ho cercato su Google e da quello che ho visto, le risposte sono tutte per versioni precedenti di MVC e utilizzato la sintassi di stile <%%> e ha ottenuto errori System.IO anziché l'errore System.Web che sto ottenendo. Ho seguito il loro consiglio e provo con e senza il punto e virgola, il che non ha fatto alcuna differenza visto che ho ancora ottenuto YSOD ogni volta. Qualche idea?

+0

È il Web.Config stato modificato in alcun modo? –

+0

Web.Config è stato modificato solo per una stringa di connessione DB e una chiave API per il mio processore di carta di credito, altrimenti è quello generato quando ho creato il progetto – berwyn

risposta

26

Questo potrebbe essere solo perché RenderPartial non restituire nulla. Provare uno:

@Html.Partial("_AddressPartial") 

o

@{ Html.RenderPartial("_AddressPartial"); } 
+2

utilizzando '@ {Html.RenderPartial (" _ AddressPartial "); } 'La versione ha funzionato! Grazie mille! – berwyn

6

noti che RenderPartial non restituisce alcun valore (proprio come il metodo RenderAction), scrive l'uscita su richiesta. mentre Partial (proprio come il metodo Action) restituisce il valore di MvcHtmlString.
SO @Html ... deve restituire un valore mentre @ {... un codice ...} non deve.
Nel tuo caso, se si desidera utilizzare renderPartial usare in quel modo:

@{Html.RenderPartial("_AddressPartial");} 

Ma perché non utilizzare il metodo parziale, che può essere utilizzato così:

@Html.Partial("_AddressPartial") 
Problemi correlati