2011-01-31 9 views
5

En mi proyecto <% if (Model.Folders != null){}%> funciona bien, cuando convierto este código a formato de rasurador, recibí la excepción "Sin sobrecarga para el método 'Write' toma 0 argumentos en formato MVC3 Navaja," en miSin sobrecarga para el método 'Write' toma 0 argumentos en MVC3 Razor Format,

Html.RenderPartial(ViewData["abc"] as string, Model); 

estoy usando vista dinámica

+0

Recibí este error también en esta línea: '@ {isAlt =! IsAlt;}'. Es muy extraño, solo quiero alternar la variable booleana. Anteriormente he declarado '@ {var isAlt = true;}' y se usa en algún lugar en el medio con 'class =" @ (isAlt? "Alt": string.Empty) "' que se usa para marcar filas alternativas en una tabla . Debe haber una razón ... – CallMeLaNN

+0

Recibí la respuesta: http://stackoverflow.com/questions/4466469/razor-no-overload-for-method-write-takes-0-arguments – CallMeLaNN

Respuesta

7

la afeitadora en la prueba if debería ser así:

@if (Model.Folders != null) 
{ 
    <div>@Model.Folders</div> 
} 

y el RenderPartial así:

@{Html.RenderPartial(ViewData["abc"] as string, Model);} 

o también puede utilizar el método Partial que es equivalente, y un poco más corto:

@Html.Partial(ViewData["abc"] as string, Model) 
+0

cuando uso el "@ Html.Partial (ViewData ["abc"] como cadena, Modelo) ", obtengo el siguiente error" 'System.Web.Mvc.HtmlHelper ' no tiene un método aplicable llamado 'Parcial' pero parece tener un método de extensión por ese nombre. Los métodos de extensión no se pueden distribuir dinámicamente. Considere lanzar los argumentos dinámicos o llamar al método de extensión sin la sintaxis del método de extensión. \t " –

+0

@amir, su vista no está fuertemente tipada, por lo que no puede usar la variable' Modelo'. Asegúrese de que su vista esté fuertemente tipada a algún tipo de modelo: '@model AppName.Models.SomeModel' en la parte superior de su vista. –

+0

es Stongly Typed, he usado el "@model AppName.Models.SomeModel" –

2

he tenido el mismo problema, lo solucioné envolviendo mi Html.RenderPartial como sigue:

 <text> 
     @{ 
      Html.RenderPartial(ViewData["abc"] as string, Model); 
      } 
    </text> 

o

<div> 
@{ 
Html.RenderPartial(ViewData["abc"] as string, Model); 
} 
</div> 
Cuestiones relacionadas