2011-02-16 15 views
17

Así que una en un error en tiempo de ejecución con mi aplicación asp.net MVC3, cuando comprobé el código que ver que tiene una línea roja en él, la lista de errores dice no hay tal función definida pero todavía compilará bien. El error aparece solo en el tiempo de ejecución? Estoy usando T4MVC y esperaba que me ayudara a evitar problemas como este?sintaxis de la maquinilla de afeitar con errores compila cuando no debería compilar

¿Es esto por diseño o estoy haciendo algo mal aquí?

enter image description here

El código anterior no debe compilar porque no existe tal método no!

se produce un error en tiempo de ejecución:

enter image description here

Esta un poco de cosas suceden mucho, no sólo por los métodos de la ONU definido, pero incluso variables, etc.

+0

duplicado posible de [Compilar Vistas en ASP.NET MVC] (http: // stackoverflow. com/questions/383192/compile-views-in-asp-net-mvc) –

Respuesta

29

Esto es por diseño. La creación de vistas MVC está deshabilitada de forma predeterminada. Puede activar la acumulación de sus puntos de vista MVC en Visual Studio así:

  • haga clic en el botón derecho en el proyecto en Visual Studio
  • Descargar proyecto
  • Editar proyecto

  • Cambio el valor para MvcBuildViews de falso a verdadero

    <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    ...
    <MvcBuildViews>true</MvcBuildViews>
    ...

  • proyecto Recargar

siguiente compilación y hay errores en sus puntos de vista MVC, que no se compilará. El inconveniente es que el proceso de compilación llevará más tiempo.

actualización

Aquí es un answer en SO, que explica cómo evitar el error:

It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS

+0

+1 yay! ¡increíble! Sabía que había una función desconocida en alguna parte, ¡solo rastreé 2 errores más que me hubieran molestado más tarde! – gideon

+2

+1, Sin embargo, al agregar esto, comenzó a quejarse sobre esto: 'Es un error utilizar una sección registrada como allowDefinition = 'MachineToApplication' más allá del nivel de la aplicación. Este error puede deberse a que un directorio virtual no se configuró como una aplicación en IIS' –

+0

@Filip sí ** También lo conseguí ** ... intente Limpiar la solución y volver a compilar, incluso puede significar que tiene errores en su ¡También me gusta mi opinión! – gideon

Cuestiones relacionadas