tutorial net mvc entre ejemplos diferencias component asp c# asp.net asp.net-mvc asp.net-mvc-3 localhost

net - web forms c# tutorial



Ruta a archivos dentro de la carpeta de contenido(ASP.NET MVC) (3)

1. ¿Es la carpeta de contenido la carpeta raíz? Quiero decir ¿ http://localhost/ apunta al contenido o es otra cosa?

No, http://localhost:port/ no apunta a la carpeta de contenido. Puede acceder a los archivos en la carpeta de contenido a través de http://localhost:port/content/ ...

2. Tengo un archivo llamado dummyIcon.png dentro de la carpeta Contenido / images / temp. ¿Cómo lo localizo desde mi capa de dominio (que es un proyecto de la Biblioteca de códigos)?

Debería poder acceder a él como http://localhost:port/Content/images/temp/dummyIcon.png

3. ¿Cuál es la mejor práctica de mostrar imágenes en ASP.NET MVC? ¿Debo almacenar una ruta a la imagen en la base de datos (que yo personalmente prefiero), o guardo una matriz de bytes y la devuelvo a la vista?

Donde almacena las imágenes depende de las necesidades de su aplicación. Son estas imágenes genéricas que se utilizan para mostrar imágenes de aplicaciones (íconos, logotipo de la empresa, etc.). Entonces es mejor almacenarlas en el sistema de archivos.

Si su aplicación trata con imágenes y usted trabaja en el almacenamiento de imágenes, manipulación, etc., entonces es posible que necesite DB. Creo que almacenar imágenes usadas en la aplicación web es una sobrecarga.

Hay algo que todavía no entiendo sobre cómo funciona la carpeta de Contenido en ASP.NET MVC. Para aclarar las cosas tengo algunas preguntas:

  1. ¿Es la carpeta de contenido la carpeta raíz? Quiero decir ¿ http://localhost/ apunta al contenido o es otra cosa?
  2. Tengo un archivo llamado dummyIcon.png dentro de la carpeta Content / images / temp. ¿Cómo lo localizo desde mi capa de dominio (que es un proyecto de la Biblioteca de códigos)?
  3. ¿Cuál es la mejor práctica de mostrar imágenes en ASP.NET MVC? ¿Debo almacenar una ruta a la imagen en la base de datos (que yo personalmente prefiero), o guardo una matriz de bytes y la devuelvo a la vista?

Los siguientes enlaces me parecieron útiles en el contexto de la aplicación web de MVC, pero aún así agradecería algunas respuestas a las preguntas publicadas anteriormente. Gracias.

¿Puede un controlador MVC de ASP.NET devolver una imagen?

cómo visualizar la imagen usando vista y controlador por ASP.NET MVC


  1. Cualquier cosa en la raíz apuntará a la raíz si sus rutas la ignoran:

    Si tiene una imagen colocada en la raíz de su proyecto. Luego, diga http:://localhost/dummy.ico" le dará un 404, no se encontró ningún controlador. Hasta que haga esto en su global.asax.cs :

    routes.IgnoreRoute("dummy.ico"); //you could add wildcards here to match different things

  2. Desde Código, si usa dice File.Open(); Necesitas la ruta física al archivo. Lo obtienes así:

    string filePath = Server.MapPath(Url.Content("~/Content/Images/Image.jpg"));

  3. Depende de usted aquí, aunque diría que colocar archivos en la base de datos tiene mucho sentido si quiere que todo esté en un solo lugar. Si necesita mover su aplicación, simplemente mueva la base de datos.

Cuando se trata de rutas de archivos, recuerde que no desea nombres de archivos duplicados, por lo que tendrá que dar un GUID cada archivo y luego vincularlo. Podría tener sentido si tiene una gran cantidad de archivos (o archivos grandes en sí) para que su base de datos no se vuelva loca.

HTH


Debes hacer un objeto modelo para que tu controlador regrese. en este ejemplo, estoy devolviendo SearchPageModel, una clase que he creado. pero digamos que este objeto tiene una propiedad llamada imageURL

pero asegúrese de que el controlador realmente devuelve un ActionResult

así por ejemplo...

[AcceptVerbs(HttpVerbs.Get)] public ActionResult Search() { SearchPageModel Model = new SearchPageModel(); // populate the Model properties Model.ImageURL = "myjpeg" return View("Search", Model); }

Luego paso este objeto modelo a mi vista deseada, en este caso mi vista "Buscar"

y para mostrar la imagen, en la vista agregaría ..

<img src="Images/<%=Model.ImageURL %>.jpg" />