Ver por etiquetas

Todas las etiquetas » asp.net » desarrollo » trucos (RSS)

¿Añadir una barra al final de las URL?

Hace poco veíamos que el nuevo sistema de routing usado por proyectos MVC 4 permitía una cierta configuración del formato de URL generadas por la aplicación al usar helpers como Url.Action() o Html.ActionLink() , y cómo usando una simple línea de código podíamos hacer que las rutas se generaran usando sólo minúsculas . Pues bien, al igual que en ese caso, en los proyectos que usen la última versión del ensamblado...
Publicado por José M. Aguilar | con no comments

Rutas en minúsculas en MVC 4 y ASP.NET 4.5

Seguro que alguna vez habéis notado que al generar URLs hacia acciones de una aplicación MVC usando helpers como Url.Action() o Html.ActionLink() , éstas son generadas usando mayúsculas y minúsculas según hubiéramos indicado en los parámetros de las llamadas: Helper URL generada @Url.Action("index", "home") /home/index @Url.Action("List","Products", new{ Category="PC" }) /Products/List?Category...
Publicado por José M. Aguilar | con no comments

Login único para subdominios en ASP.NET

Imaginad que tenemos un sistema web de cierto volumen y decidimos estructurarlo en aplicaciones independientes, cada una publicada en un subdominio propio: www.acme.org , que sería el sitio principal. crm.acme.org , con el sistema CRM de la empresa. erp.acme.org , con un sistema de gestión empresarial. administration.acme.org con las herramientas de administración del sistema. etc. Desde un punto de vista operativo, es probable que nos interese suministrar un mecanismo de autenticación...
Publicado por José M. Aguilar | con no comments
Archivado en: ,,

ASP.NET MVC: establecer el foco en un control al cargar la página

Uno de los aspectos más criticados por los desarrolladores cuando comienzan a trabajar con ASP.NET MVC es el hecho de tener que volver a resolver problemas que estaban ya más que solucionados en Webforms. Y uno de estos casos es un detallito muy simple pero útil: establecer el foco de edición en un control concreto al cargar una página. En Webforms era suficiente con asignar al atributo defaultFocus del tag <form> el nombre del control que nos interesara,...
Publicado por José M. Aguilar | con no comments

Validator providers en ASP.NET MVC

En la pasada charla sobre el sistema de validaciones de MVC 3 vimos un ejemplo, creo que bastante ilustrativo, de los proveedores de validación del framework. Concretamente, implementamos un proveedor capaz de obtener las anotaciones partiendo de las restricciones definidas en el web.config . Es decir, las reglas de comprobación como Required o StringLength no las definíamos a nivel de código mediante atributos, sino en el archivo de configuración, lo que podía...
Publicado por José M. Aguilar | con no comments

ASP.NET MVC: Binding de enums y EnumDataType

El pasado mes de julio publicaba el post “ Binding de enums en ASP.NET MVC ”, donde analizaba los problemas que podían aparecer cuando estamos intentando bindear tipos enumerados y los datos de entrada contienen valores incorrectos, y planteaba una solución basada en un model binder personalizado . A raíz de dicho post, el amigo Héctor S. (¡gracias!) me envió una interesante pregunta: ¿por qué no utilizar la anotación System...

ASP.NET MVC: retorno de archivos .Zip creados al vuelo

ASP.NET MVC viene acompañado de serie por un buen número de subtipos de ActionResult que podemos utilizar como retorno de nuestras acciones ( FileResult , ContentResult , ViewResult , RedirectResult , etc…) y que cubren la mayoría de escenarios de uso frecuente al desarrollar aplicaciones para este framework. Pero sin duda, lo mejor de todo es lo fácilmente que podemos extender este conjunto para lograr resultados muy potentes, reutilizables y respetuosos con el...
Publicado por José M. Aguilar | con no comments

ASP.NET MVC 3 y la coma en los decimales

Si a día de hoy hay algo fatalmente poco resuelto en ASP.NET MVC, es sin duda la localización . Aunque con un poco de paciencia se pueden poner en marcha sistemas completamente adaptados a distintos idiomas y culturas, la verdad es que se echa en falta una mayor consideración, entre otros, con los que osamos utilizar la coma para separar la parte entera de la decimal en un número. Hace tiempo traté el tema por aquí, y aporté una solución para...

ASP.NET MVC: Nombres de acciones y controladores más amigables

La ruta por defecto de ASP.NET MVC es válida para la gran mayoría de escenarios simples, permitiéndonos acceder a las acciones a través de URLs del tipo http://{servidor:puerto}/{controlador}/{accion} Así, dada una clase controlador con acciones como las siguientes: public class InformacionCorporativaController : Controller { public ActionResult QuienesSomos() { return View(); } public ActionResult MisionVisionYValores() { return View(); } public ActionResult UneteANuestroEquipo...
Publicado por José M. Aguilar | con no comments

Retornar vistas dependiendo de la cultura actual en ASP.NET MVC

ASP.NET MVC utiliza los mismos mecanismos de ASP.NET para la implementación de sitios web localizados, por lo que podemos utilizar los clásicos recursos definidos en la carpeta App_GlobalResources para ir componiendo los interfaces. De esta forma, los literales de texto de las vistas son sustituidos por expresiones que, ya en tiempo de ejecución, son tomadas del archivo de recursos correspondiente al idioma actual: Sin embargo, recientemente me he encontrado con un escenario...
Publicado por José M. Aguilar | con no comments

Compilación de vistas ASP.NET MVC y el error “No se pudo cargar el tipo EntityDesignerBuildProvider”

Hacía tiempo que no activaba la compilación de vistas en ASP.NET MVC. La verdad es que si no tienes una máquina potente ralentiza bastante la construcción de las soluciones, pero ahora que la tecnología está de nuevo de mi lado, pensé que sería buena idea activarla en un proyecto MVC 3 y resulta que me he topado con el siguiente error de compilación: No se pudo cargar el tipo 'System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider'...
Publicado por José M. Aguilar | con no comments

Generación de atributos con guiones en helpers MVC 3

Desde la primera versión de ASP.NET MVC se permite añadir a la mayoría de los helpers que generan etiquetas HTML atributos personalizados. Para ello, se introducían objetos anónimos cuyas propiedades eran transformadas a atributos en el momento del renderizado, como en el siguiente ejemplo: Este código generaría el siguiente marcado: Ahora que se van a poner muy de moda los atributos personalizados al estilo HTML5, como los “data-xxxx”...
Publicado por José M. Aguilar | con no comments

Validación de peticiones en ASP.NET, o cómo evitar el error “Request.Form peligroso”

La validación de peticiones es un mecanismo integrado en ASP.NET que evita la entrada al sistema de valores considerados “peligrosos” para su integridad, como tags y otros elementos utilizables para la inyección de scripts (XSS) o introducción de valores no controlados. Dado que está implementado a nivel de plataforma ASP.NET, los valores recibidos en parámetros de entrada son vigilados con ASP.NET MVC, WebForms e incluso WebPages (la tecnología...

Referenciar scripts, estilos y otros recursos desde vistas MVC

Una cuestión que consultan frecuentemente los alumnos del curso de MVC que tutorizo en CampusMVP , y que veo en los foros oficiales del framework trata sobre el uso correcto de rutas hacia recursos utilizados por las páginas, como scripts, estilos o imágenes. Unas referencias erróneas hacia las páginas de estilo o imágenes pueden hacer que un sitio web, o parte de éste, deje de visualizarse correctamente; en el tema de scripts es más grave pues...

Saltarse las validaciones del lado cliente en ASP.NET MVC

Las validaciones automáticas de ASP.NET MVC son una fórmula muy útil y productiva de comprobar los datos introducidos por nuestros usuarios. Como sabemos, basta decorar las propiedades de las entidades del Modelo con atributos que indiquen las restricciones a aplicar en cada caso, y el framework MVC se encargará del resto, incluso en la capa cliente . Como sabemos, el sistema de validación es capaz de generar scripts capaces de comprobar en cliente que los datos...

Edición elegante de fechas con jQuery Datepicker y MVC, paso a paso

Las plantillas de edición, incorporadas con la versión 2 de ASP.NET MVC, permiten crear muy fácilmente interfaces de edición reutilizables, y asociarlas a tipos de datos concretos. En el caso de las fechas se trata de una práctica muy habitual, puesto que la edición por defecto para este tipo de campos casi nunca es suficiente y siempre tendremos necesidad de modificar este comportamiento. Es decir, pongamos una entidad del Modelo como la siguiente: public...

¿Bug (sin importancia) en la plantilla de edición de MVC 2 con DateTime, decimal y double?

¿Habéis observado que al generar una vista de edición tipada sobre una entidad que contiene propiedades decimales o de fecha, Visual Studio os genera una llamada extraña al helper TextBoxFor() ? Vamos a verlo en detalle. Partimos de una entidad del Modelo como la siguiente: Generamos ahora el andamiaje con Visual Studio, utilizando la opción correspondiente del menú contextual, indicando que se trata de una vista de edición, sobre la entidad Persona...

Maxlength en cuadros de texto de formularios MVC

Resulta algo paradójico que ASP.NET MVC sea capaz de generar código para comprobar tanto en cliente como en servidor que la longitud del texto introducido sea menor que la indicada con la anotación [StringLength] , y sin embargo, los helpers habituales no generen el atributo maxlength en el tag <input type="text"> . Podemos comprobarlo muy fácilmente. Por ejemplo, dada una entidad del Modelo como la siguiente: public class Persona { [StringLength(20, ErrorMessage...

Validación de rangos decimales en cliente y servidor para ASP.NET MVC 2

Una de las mejoras más esperadas de ASP.NET MVC 2 es, sin duda, el sistema integrado de validación del Modelo basado en las anotaciones de datos ( Data Annotations ). Y aunque la implementación en general es bastante apañada, hay algunos aspectos mejorables, sobre todo cuando intentamos desarrollar aplicaciones en nuestro idioma. Por ejemplo, existe un curioso comportamiento del juego de herramientas de validación en cliente y servidor en lo relativo a la introducción...
Publicado por José M. Aguilar | con no comments

Habilitar la compilación de vistas en proyectos ASP.NET MVC 2

Hace un año hablábamos por aquí sobre los ajustes que debíamos realizar para compilar las vistas de MVC 1.0 como parte del proceso de construcción del proyecto. De esta forma tendremos las ventajas del chequeo en tiempo de compilación, que bien valen la pena aún a costa de tener que esperar algo más en cada montaje. MVC 2 también permite habilitar esta característica en Visual Studio de forma muy sencilla. Sólo seguir los...
Publicado por José M. Aguilar | con no comments
Más artículos Página siguiente >