2011-11-25 19 views
6

Esto me está llevando a la vuelta de la esquina. Soy desarrollador de formularios de VB.NET, bastante nuevo en ASP.NET y completamente nuevo en MVC. Estoy creando páginas vbhtml que usan la sintaxis VB.NET Razor, y parece que estoy luchando constantemente contra el UI que está tratando de aplicar incorrectamente mi código. Tomemos el ejemplo siguiente, en base a la página de la plantilla para una nueva Razor vista:¿Cómo puedo hacer que la sangría del código se comporte correctamente en los archivos de navajas vbhtml?

@Code 
    Layout = Nothing 
End Code 
<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
</head> 
<body> 
    <div> 
     @If True Then 
      @<ul> 
       @For x = 1 To 2 

       Next 
      </ul> 
       End If '<-- Randomly indented too far 
    </div> 
</body> 
</html> 

En el ejemplo anterior, tan pronto como me golpeó volver después Next, End If dos líneas por debajo de los saltos al azar dos lengüetas hacia adelante de donde debería ser. En otros ejemplos he tocado un círculo donde presionar una línea hacia el lugar correcto arroja otra línea fuera de posición y viceversa.

Estoy tan molesto en este momento que estaría encantado de deshabilitar la sangría automática por completo y simplemente administrarlo yo mismo, pero ni siquiera puedo averiguar cómo hacerlo. Siguiendo los consejos sobre otra secuencia, desactivé la sangría para las páginas HTML, pero lo único que detiene es la sangría de las etiquetas HTML; los bloques de códigos aún se deslizan por todos lados.

Pensé que una extensión podría estar causando el problema, pero los deshabilité a todos y reinicié y el problema persiste. ¿Estoy haciendo algo fundamentalmente malo? Me cuesta creer que Microsoft lanzaría algo tan pobre, así que parece más probable que no lo esté usando bien.

+0

Creo que puede usar la opción "Formatear todo el documento" que forma parte de la herramienta "Edición de fuente HTML" en Visual Studio. Alternativamente, puede usar el comando (Ctrl + E, D) regularmente para formatear el documento. – pramodtech

+1

@Pramodtech: en mi entorno, Ctrl + E, D muestra el cuadro de diálogo "Agregar archivo existente", pero intenté Ctrl + K, D que parece formatear todo el documento. El problema es que desdibuja el documento aún peor de lo que era antes. Parece que MS tiene un error grave en la sangría automática de vbhtml que me parece realmente sorprendente dado lo refinado que es VS en general. – wwarby

+0

@wwarby No es solo VB, también afecta C#, lo que lo hace aún más estúpido de lo que todavía no se ha abordado. –

Respuesta

2

he encontrado una solución (de forma) en otra pregunta (que realmente se buscó duro antes de la publicación de esta pregunta y no pude encontrar nada): Why doesn't Visual Studio code formatting work properly for Razor markup?

Esencialmente, la solución parece ser la de asegurar que su código usa espacios en lugar de pestañas para el espacio en blanco. Si bien aumenta el tamaño general de la página debido al aumento del espacio en blanco, disminuye el problema (aunque no lo elimina por completo). En el hilo vinculado, alguien que parece estar conectado con Microsoft ha reconocido que se trata de un error relacionado con los formateadores superpuestos para HTML y VB.NET que esperan mejorar en una nueva versión. Bajé a 2 espacios por sangrado para disminuir el impacto del ancho de banda.

Gracias a los chicos que contribuyeron.

0

Una mejor alternativa aquí (en lugar de usar espacios para pestañas), es cambiar la sangría de bloque para HTML y C#/VB a "Bloquear" en lugar de "Inteligente". Esta no es una solución completa, ¡pero la OMI es una solución mucho menos dolorosa que el uso de espacios!

Cuestiones relacionadas