Tengo una aplicación MVC4, pero principalmente la estoy usando para las piezas WebAPI. Quiero que se envíe un archivo "HTML antiguo simple" al usuario (que luego usará KnockoutJS o KendoUI para extraer JSON de los controladores webapi).MVC4 - ¿Hay alguna manera de enrutar la raíz a una página html no procesada "normal"?
Sé que puedo hacer esto:
routes.IgnoreRoute("{page}.html");
Y luego, si hojeo a "localhost/index.html" lo hace con éxito acaba de regresar a mi página html. Sin embargo, realmente quiero asignar la ruta predeterminada "raíz" localhost/"para devolver mi index.html.
yo probamos este:
routes.MapPageRoute("root", "", "~/index.html");
pero que arroja el error:
There is no build provider registered for the extension '.html'. You can register one in the <compilation><buildProviders> section in machine.config or web.config. Make sure is has a BuildProviderAppliesToAttribute attribute which includes the value 'Web' or 'All'.
Alguien tiene alguna idea sobre cómo puedo hacer este trabajo? Podría pulsar un controlador predeterminado que devuelva una página html simple, pero parece exagerado pasar por toda la pila ASP.NET una vez para la página HTML, que luego llama a una URL WebAPI para volver a la pila ASP.NET para obtener algunos datos JSON para el modelo de la página.
Básicamente, simplemente quiero "omitir" todas las tuberías de MVC y hacer que IIS me envíe de vuelta la página html, como si no fuera una aplicación ASP.NET, o al menos hacer el menor procesamiento posible.
Pero una vez que llegue a las rutas de MVC, que ya ha alcanzado ASP.Net. Si desea que IIS lo maneje, debe configurarlo en el nivel del servidor con reglas de reescritura y demás. – McGarnagle
Sí, y estoy de acuerdo con que toque un poco ASP.NET. Solo pensé que un controlador vacío era excesivo. Con la ruta de ignorar, al menos no tiene que crear instancias y llamar al controlador y a la vista. – CodingWithSpike