RemoteValidationAction

Resumen

Aplica a

Propiedad

Valor por defecto

(vacío)

Nodo

CustomProperty

Descripción

En el paso 1, el usuario introduce un nombre de usuario que ya ha sido ocupado, la validación remota en el servidor responde con un mensaje de error y el usuario cambia el nombre de usuario deseado, entonces el servidor valida su disponibilidad como correcta.

Cómo se usa

1. Agregar la propiedad al modelo

En el modelo, navega a la entidad y la propiedad correspondiente para agregar la propiedad personalizada "RemoteValidationAction".

        <Property Name="UserName" MaxLength="200" Visible="true" UIRequired="true" Type="String" >

          <CustomProperties>

            <CustomProperty Name="RemoteValidationAction" Value="UserNameAvailable"/>

          </CustomProperties>

        </Property>


2. Re-generar código

Re-generar el código de la capa de Front-End, haciendo clic drecho sobre el archivo All.MVC.tt y seleccionando "Run custom tool" del menú contextual.

3. Implementar código personalizado

Implementar una clase parcial correspondiente a la entidad que se esta extendiendo, por ejemplo: secUser es la entidad, y su controller es secUsersController.cs.
Observar que la clase generada automáticamente tiene un metodo parcial declarado, para que se pueda implementar en la clase parcial.

        partial void OnUserNameAvailable(ref object result, string candidate, string initialValue);

        public ActionResult UserNameAvailable(string UserName, string InitialUserName)

        {

            object result = true;

            OnUserNameAvailable(ref result, UserName, InitialUserName);

            return Json(result, JsonRequestBehavior.AllowGet);

        }

Lo anterior permite que se pueda crear una clase parcial en un nuevo archivo:
secUsersController.Partial.cs

    public partial class secUsersController : SFSdotNet.Framework.Web.Mvc.ControllerBase
    {
        partial void OnUserNameAvailable(ref object result, string candidate, string initialValue) {
            if (candidate.ToLower() == initialValue.ToLower())
            {
                result = true;
            }
            else
            {
                result = SFSdotNet.Framework.Security.BR.secUsersBR.Instance.IsUsernameAvailable(candidate);
            }
        }
    }
Comments