2012-07-05 11 views
6

Estoy tratando de comprender muchos conceptos que son nuevos para mí y necesito algunas aclaraciones sobre la mejor manera de crear y pasar mi modelo fuertemente tipado de mi controlador MVC a su vista Razor usando una API web.Llamando API web desde MVC Controller para construir y pasar el modelo para ver

Como se ve en muchos ejemplos, normalmente crea su modelo desde algún repositorio y luego lo pasa a la vista (fuertemente tipado o no) y luego utiliza la sintaxis Razor que le da acceso a su modelo para construir el html no necesariamente tener que usar JavaScript.

Donde las cosas se vuelven complicadas para mí es cuando quiero hacer uso de la API web para crear el modelo que quiero usar igual que lo usaría como lo describo en el párrafo anterior.

¿Debo llamar al nuevo HTTPClient para llamar al servicio Web API desde mi controlador? ¿Tendré que deserializar y formatear la respuesta? etc ...

siempre veo las llamadas y las manipulaciones de las secuencias de comandos dentro de la vista ...

Podría alguien que me señale la dirección correcta?

Gracias.

+0

No estoy seguro de entender su configuración. ¿Estás utilizando 'ApiController's para devolver datos a una vista, o estás llamando a otro controlador WebAPI desde dentro de un controlador MVC estándar? – James

+0

Hola James, estoy llamando a un controlador WebAPI desde dentro de un controlador MVC estándar. Por ahora, dado que estoy practicando, podría ser un controlador de la misma aplicación MVC, pero eventualmente tendré que construir servicios WebAPI independientes a los que llamaré desde otras aplicaciones. – jbrabant

Respuesta

8

Si su WebAPI es un punto final independiente, es decir, no forma parte de su sitio actual, entonces sí deberá enviar un HttpWebRequest desde el interior de su controlador y luego serializar los datos de la respuesta y pasarlos a su vista.

Como alternativa, puede llamar a la API directamente desde su vista a través de AJAX, sin embargo, no estoy seguro de si necesita que su controlador haga algo con los datos antes de que llegue a la vista.

+0

Gracias por su respuesta, James. ¿Es correcto decir que no hay necesidad de apicontrollers si el único consumidor es mi aplicación MVC? – jbrabant

+8

La manera de verlo es - ApiControllers return * data * p. Ej. XML/Json para el consumo por un cliente, los controladores MVC estándar devuelven * vistas * para ser servidas al navegador. Los controladores estándar también pueden devolver datos, pero a los efectos de esto, piense en ellos como controladores * view *. Entonces, teniendo todo en cuenta, pregúntese qué tipo de controlador necesita ... – James

Cuestiones relacionadas