2012-06-25 13 views
6

Estoy intentando mostrar una vista parcial utilizando un método de ayuda personalizado. El único problema es que no puedo superar este problema de sintaxis. El conjunto de modelos para este archivo cshtml es una colección IEnumerable de modelos que he definido como Operación. Estoy seguro de que esta es una solución fácil. He aquí un ejemplo de lo que estoy viendo:Problema de sintaxis Razor MVC4

tengo este bloque de código:

@using(Html.BeginForm()) { 
     <div id="editor_rows"> 
      @foreach (var item in Model){ 
      Html.RenderPartial("OperationEditorRow", item); 
      } 
     </div> 
    } 

Esto me da el siguiente error en tiempo de ejecución:

Unexpected "{" after "@" character. Once inside the body of a code block (@if {}, @{}, etc.) you do not need to use "@{" to switch to code. 

Pero si quito el @ firmar en frente de la declaración foreach, todo se interpreta como texto sin formato. Así que traté de hacer un @ delante del HTML de la siguiente manera:

@using(Html.BeginForm()) { 
     <div id="editor_rows"> 
      @foreach (var item in Model){ 
      @Html.RenderPartial("OperationEditorRow", item); 
      } 
     </div> 
    } 

Esto vuelve con un error de compilación que dice:

Cannot implicitly convert type void to object 

Si funciono el proyecto de aquí, me sale un error de ejecución que dice:

The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments 

Supongo que esto está relacionado con el error anterior. Si alguien tiene una sugerencia para mí, por favor ayuda.

+0

Trate de usar 'Partial' en lugar de' RenderPartial' – lucask

+0

Su código se ve bien. Intente reiniciar Visual Studio. Eso se ha sabido para solucionar una serie de anomalías como esta. –

+0

Gracias por sus sugerencias. Los probé, pero sigo viendo los mismos errores. Creo que el corazón del problema está en el segundo mensaje de error: No se puede convertir implícitamente el tipo void al objeto –

Respuesta

1

Problema resuelto. Trabajé en esto con un compañero de trabajo. Resulta que el error refiriéndose al método de escritura apunta a un problema dentro de mi vista parcial. Estaba usando @ {} alrededor de un bloque de código dentro de allí, que probablemente también arrojó los otros errores de sintaxis. Gracias por las respuestas.

0

Agregar {} 's alrededor de su llamada rendir como @ {...} renderPartial

+0

Gracias por la respuesta, pero cuando hago esto, sigo teniendo el mismo error de sintaxis que antes: Inesperado "{ "después de" @ "personaje. Una vez dentro del cuerpo de un bloque de código (@if {}, @ {}, etc.) no necesita usar "@ {" para cambiar al código. –

Cuestiones relacionadas