2011-11-10 14 views
11

Estoy construyendo una aplicación MVC3 para mi clase de web dinámica, y al intentar hacer un parcial, me sale el siguiente error:ASP.NET MVC3 @ Html.RenderPartial está lanzando CS1502 error

CS1502: El mejor sobrecargado partido método para 'System.Web.WebPages.WebPageExecutingBase.Write (System.Web.WebPages.HelperResult)' tiene algunos argumentos no válidos

Ahora, el código que estoy ejecutando es la siguiente:

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

Ahora, he buscado en Google esto, y por lo que he visto, las respuestas son todas para versiones anteriores de MVC y usó la sintaxis de estilo <%%> y obtuve errores System.IO en lugar del error System.Web que obtengo. Sin embargo, sí seguí sus consejos y lo intenté con y sin el punto y coma, lo que no hizo ninguna diferencia, ya que todavía tengo el YSOD cada vez. ¿Algunas ideas?

+0

¿Es el web.config sido modificado de alguna manera? –

+0

Web.Config solo se modificó para una cadena de conexión de base de datos y una clave de API para mi procesador de tarjeta de crédito; de lo contrario, se genera cuando creé el proyecto – berwyn

Respuesta

26

Esto podría ser porque RenderPartial no devuelve cualquier cosa. Prueba cualquiera:

@Html.Partial("_AddressPartial") 

o

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

Usando '@ {Html.RenderPartial (" _ AddressPartial "); } '¡versión trabajada! ¡Gracias una tonelada! – berwyn

6

en cuenta que renderPartial no devuelve ningún valor (al igual que el método RenderAction), se escribe la salida de la solicitud. mientras que Parcial (al igual que el método de Acción) devuelve el valor de MvcHtmlString.
SO @Html ... tiene que devolver algo de valor, mientras que @ {... algún código ...} no tiene por qué.
En su caso si desea utilizar renderPartial lo utilizan así:

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

Pero por qué no utilizar el método parcial, que se puede utilizar como esa:

@Html.Partial("_AddressPartial")