Pregunta

actualmente estoy buscando aquí para migrar un proyecto de MVC1 a MVC2. Estamos utilizando XVal para la validación del lado del cliente.

Por lo que entiendo, sólo tengo que eliminar las referencias a XVal y reemplazar por MVC2 EnableClientSideValidation y que debería hacer el truco. Cualquier otra cosa sería necesaria?

Además, con XVal no pudo validar el lado del cliente una lista de modelos, es todavía el caso de MVC2 + ClientSideValidation? (Lo que quiero decir con la "lista de los modelos" está haciendo la validación en un List<TypeOfModel>)

ejemplo de esto es: controlador:

    public ActionResult Index()
    {
        Models.Model1 model = new Models.Model1();
        model.Usernames = new List<Models.Model2>();

        model.Usernames.Add(new Models.Model2 {  });
        model.Usernames.Add(new Models.Model2 {  });
        model.Usernames.Add(new Models.Model2 {  });
        model.Usernames.Add(new Models.Model2 {  });

        return View(model);
    }

Model1:

class Model1 {  
public List<Model2> Usernames { get; set; }
}

Modelo2:

class Model2 {  
[Required]
public string Username { get; set; }
}

Ver:

    <% Html.EnableClientValidation(); %>

    <% using (Html.BeginForm()) { %> 

        <% foreach (var username in Model.Usernames) { %> 
            <% Html.RenderPartial("View2", username); %>
            <br /><br />
        <% } %>

        <input type="submit" />

    <% } %>

Vista2:

<%= Html.EditorFor(f => f.Username) %>
<%= Html.ValidationMessageFor(a => a.Username)%>

Este es un POC, donde la validación del lado del cliente MVC2 está fallando, ya que valida por id campo ...

¿Fue útil?

Solución

Estado allí, hecho eso, consiguió la camiseta. Y quisiera nunca haber estado allí - la validación MVC2 francamente, no es a la par con XVal una vez que tienes XVal adecuadamente implementado. Además, la validación MVC3 es mucho, mucho mejor hecho. Por lo tanto, si estuviera saltando de XVal, me vector hacia lo que es trabajar con MVC3 que es una bestia muy diferente.

Otros consejos

A pesar de que suscribo algo a lo que Wyatt dice aquí sobre todo la parte MVC3, pero he estado usando validación del lado del cliente y MVC2 no ha sido una mala experiencia en absoluto.

Para responder a su pregunta, es necesario hacer lo siguiente: 1. Incluir MicrosoftAjax.js y MicrosoftMvcValidation.js en su punto de vista. 2. Después, simplemente llamar al ayudante <% Html.EnableClientValidation (); %>

Debe recogida reglas de validación modelo DataAnnotation y darle validación del lado del cliente sin mucho esfuerzo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top