MVC3 Release Candidate
Esto es un no parar, ayer salió la Release Candidate de MVC3, anunciada por ScottGu.
Podéis descargaros la nueva versión de aquí y ver las Notas de la descargar aquí.
¿Qué novedades trae esta versión?
- Soporte Intelisense para las vistas Razor:
(Una imagen vale más que mil palabras)
- Nuevos Atributos Interesantes:
- ControllerSessionStateAttribute: Es un atributo para poder, digamos, alterar el uso de la Session.
El atributo recibe un valor de tipo SessionStateBehavior, el cual es una enumeración con los siguientes valores: - Default: Es el valor por defecto, que tenga la aplicación.
- Disabled: Inhabilita el uso de Session en el controlador. Utilizar una variable de Session con este valor, va a provocar una excepción.
- ReadOnly: Solo va a permitir consultar valores de Session, es decir, la escritura en variables de Session nos provocará una excepción.
- Required:Va a permitir leer y escribir en las variables de Session.
[ControllerSessionStateAttribute(System.Web.SessionState.SessionStateBehavior.Required)]
public class EjemploController : Controller
- Atributos de Validación: Se han introducido algunos nuevos atributos como son:
- SkipRequestValidation: es el equivalente al que hace unos días publique aquí. Nos va a permitir evitar la validación del código para elementos que no deseemos, por ejemplo un editor de texto… En el siguiente ejemplo muestro ambos atributos, cuyo resultado va a ser el mismo.
[ValidateInput(false)]
[SkipRequestValidation]
public string Message { get; set; }
- CompareAttribute: Imaginaros, la típica situación donde tenemos una vista para crear usuarios, con una contraseña y otra caja de texto para validar la contraseña.
Este atributo, nos va a permitir a nivel de propiedad, establecer una comparación con otra propiedad de nuestro Modelo de una manera muy sencilla:
[Required]
public string Contraseña { get; set; }
[Required]
[Compare("Contraseña")]
public string RepiteContraseña { get; set; }
Además del campo con el que comparar se pueden indicar las siguientes propiedades:
- ErrorMessage
- ErrorMessageResourceName
- ErrorMessageResourceType
- Remote: Este es un atributo más que interesante, debido a que nos va a permitir realizar una validación cuando estemos editando un modelo, al igual que podríamos realizarla con JQuery, pero teniendo el código en el controlador. El atributo tiene varías sobrecargas, pero quizás la mas sencilla sea:
[Remote("Funcion","Controller")]
public string Topic { get; set; }
Está sobrecargar recibe 2 parámetros:
- Nombre de la función que se va a ejecutar para la validación.
- Controlador donde se encuentra la función a ejecutar
Es de entender, que el valor de retorno de la función tendrá que ser de tipo Boolean(bool)
Hay más novedades en esta “Release”, pero no voy a entrar a detallar más, os dejo que juguéis un poco con ella, estoy convencido de que os va a gustar.
Se me olvidaba comentar que os paséis por el
Blog de Eduard para ver el tema de Unobstrusive Ajax!!!
Un saludo.