Red de conocimiento informático - Conocimiento informático - Cómo configurar variables usando razorJavaScript usando MVC4

Cómo configurar variables usando razorJavaScript usando MVC4

1. Deberías mirar el resultado de tu página de afeitar. Pruebe esto:

@{

int proID = 123

int nonProID = 456

}

< p; >

La salida debería ser así:

2.

Esto Resolví el problema:

@{int proID = 123; int nonProID = 456;}

Es uno mismo y no implica convertir hacia y desde texto.

Sin embargo, debe tenerse en cuenta que, dado que Número ahora es un objeto, no una primitiva y el operador igual exacto puede aparecer de forma no trivial:

var y = Número(123)

alert(y === 123); // muestra false

3.

Debido a errores de sintaxis de razor, es posible que estés trabajando en un entorno problemático. De alguna manera, entiendo completamente por qué querrías evitarlos. Aquí hay algunas otras opciones.

Las comillas actúan como delimitadores, por lo que Razor Parser está contento. Pero, por supuesto, su interpretación en C# de una cadena JS es la primera opción para los puristas, la segunda opción probablemente sea mejor.

Si hay una manera mejor de hacer esto sin errores de sintaxis, especialmente manteniendo los tipos VAR, ¡me encantaría verla!

4.

Funciona si lo haces:

var proID = @proID + 0;

Produce El código se ve así esto:

var proID = 4 + 0;

Un poco raro con seguridad, pero al menos no más errores de sintaxis falsos.

Lamentablemente, el error aún se informa en VS2013, por lo que no se ha resuelto adecuadamente (aún).

5.

No hay tantas respuestas como advertencia: esto sigue siendo una solución; pensé que no tenía nada esperando la sintaxis @(...). es decir, su código será:

var nonID = 0@(nonProID);

var proID = 0@(proID);

Obtenga el resultado como:

var nonId = 0123;

Lo que no me di cuenta es que así es como JavaScript (versión 3) representa números octales/base 8 y realmente cambia el valor. Además, si su comando "use estricto"; romperá su código por completo ya que se han eliminado los números octales.

Todavía estoy buscando una solución adecuada.

6.

He estado buscando este método:

función getServerObject(serverObject) {

if (typeof serverObject == = "indefinido") {

return null;

}

return serverObject;

}

var itCameFromDotNet = getServerObject(@dotNetObject);

Esto parece inseguro en el lado JS... en el peor de los casos terminarás con una variable vacía.

7.

He visto varias formas de solucionar este error y ejecuté una prueba de sincronización para ver qué tan rápido funciona (

Método:

Directo

En este enfoque, la sintaxis de razor se asigna directamente a la variable. Esto arroja un error. Como punto de partida, la prueba de velocidad de JavaScript simplemente realiza un análisis lineal. la variable.

función parseInt

En este enfoque, la sintaxis de razor se coloca entre comillas y se pasa a la función `parseInt`

Función que devuelve un valor.

En este enfoque, se crea una función simplemente tomando la sintaxis de razor como y devolviéndola.

Función con verificación de tipo

En este enfoque, la función. Se crea la función. Realice una verificación de tipo básico (busque nulo, básico) y devuelva el valor si no es nulo.

Utilice cada uno de los bucles for anteriores para repetir cada llamada de función durante un total de 10 M. El bucle for se repite 30 veces para obtener un promedio de cada 10 millones de acciones. Estas se comparan entre sí para determinar qué acciones son más rápidas que otras.

Tenga en cuenta que es el número real de las demás. que están siendo recibidos por JavaScript variarán, pero lo que importa no es el número real, sino cómo llegar a los otros números.

Resultado:

Usando el método directo, 10M se procesó usando un promedio de 98,033 ms. El constructor Number produce 1554,93 ms por 10 M. De manera similar, el método parseInt tarda 1404,27 ms. Las dos funciones llaman a 97,5 ms de la función simple y a 101,4 ms de la función. p> El código más limpio es sencillo. Sin embargo, esto informa un error en Visual Studio y puede tener problemas con IntelliSense y dar una sensación borrosa de que algo anda mal.

El código más rápido es una llamada de función simple y simplemente eso. Por un ligero margen Como no hice más análisis, no sé si esta diferencia es estadísticamente significativa. La función de verificación de clase también es muy rápida y solo un poco más lenta que la directa, incluida la posibilidad de que la variable pueda hacerlo. ser nulo Sin embargo, no es realmente práctico, incluso la función básica devolverá indefinido si no está definida (sintaxis de razor vacía)

Analizar el valor de razor como un int y ejecutarlo a través del constructor es lento. 15 veces más lento, del orden de no ser directo. Lo más probable es que el constructor Number esté llamando a parseInt internamente, lo que explicaría por qué lleva más tiempo que un simple parseInt. Sin embargo, tienen la ventaja de no requerir una función definida externamente (es decir, otro archivo o aplicación) para ejecutarse, siendo el constructor de Número en realidad una conversión visible de un número entero minimizado a una cadena.

La conclusión es que estos números se generaron durante una ejecución de 10 millones de iteraciones. En un proyecto, la velocidad es inmensamente pequeña.

Para la mayoría, simplemente ejecútelo a través del constructor Number, que es probablemente el código más legible, aunque el más lento.

8.

@{

int proID = 123

int noProID = 456;

}