Tengo una vista parcial en la máquina de afeitar. Cuando lo ejecuto, aparece el siguiente error: parece que Razor se queda atrapada pensando que estoy escribiendo código en todas partes.Palabra clave "foreach" inesperada después del carácter "@"
Palabra clave "foreach" inesperada después del carácter "@". Una vez dentro del código, no es necesario prefijar construcciones como "foreach" con "@"
Aquí está mi punto de vista:
@model IEnumerable<SomeModel>
<div>
@using(Html.BeginForm("Update", "UserManagement", FormMethod.Post)) {
@Html.Hidden("UserId", ViewBag.UserId)
@foreach(var link in Model) {
if(link.Linked) {
<input type="checkbox" name="userLinks" value="@link.Id" checked="checked" />@link.Description<br />
} else {
<input type="checkbox" name="userLinks" value="@link.Id" />@link.Description<br />
}
}
}
</div>
+1 - Estoy encontrando que esto es mi # 1 obstáculo en el aprendizaje de la maquinilla de afeitar. Mi cerebro simplemente no parece reconocer la diferencia de inmediato. Mejorando en eso, pero todavía me encuentro escribiendo lo incorrecto y luego tengo que pensar en cómo hacerlo nuevamente. –
Sí; esta es una distinción sutil pero importante. Estoy planeando escribir una publicación en el blog sobre esto como parte de mi serie Dissecting Razor, pero aún quedan cuatro partes más que deben ser lo primero. – SLaks
@Slaks - Yah, el salto adelante y atrás entre el código y el marcado como este me parece incorrecto. Es un poco insufrible desde que llevo unos años en un entorno de "código o marcado pero no ambos". Definitivamente vale la pena la frustración temporal sin embargo. Estoy bebiendo la navaja koolaid a lo grande. –