Pregunta

Me parece que no puede conseguir cualquier cliente de la validación en el lado de trabajo en un MVC 2 RC de la aplicación.

Mi modelo es el siguiente:

public class ExampleModel
{
    [Required(ErrorMessage="Test1 is required")]
    [DisplayName("Test1")]
    public string Test1 { get; set; }

    [Required(ErrorMessage="Test2 is required")]
    [DisplayName("Test2")]
    public string Test2 { get; set; }
}

Mi punto de vista tiene el siguiente código:

<% Html.EnableClientValidation(); %>
<%= Html.ValidationSummary(true, "Test was unsuccessful.") %>    
<% using (Html.BeginForm()) { %>
<div>
    <div class="editor-label">Test1:</div>
    <div class="editor-field">
        <%= Html.TextBoxFor(m => m.Test1) %>
        <%= Html.ValidationMessageFor(m => m.Test1) %>
    </div>

    <div class="editor-label">Test2:</div>
    <div class="editor-field">
        <%= Html.TextBoxFor(m => m.Test2) %>
        <%= Html.ValidationMessageFor(m => m.Test2) %>
    </div>

    <p>
        <input type="submit" value="Test" />
    </p>
</div>

Yo deje los campos en blanco y haga clic en el botón de Prueba y se va a la derecha a la de la controladora post controlador sin la validación del lado del cliente sucediendo.No estoy seguro de lo que me estoy perdiendo.

Tengo el siguiente javascript también se incluye en la vista (no estoy seguro si necesito todo):

<link href="../../Scripts/jquery-1.3.2.min.js" type="text/javascript" />
<link href="../../Scripts/jquery.validate.min.js" type="text/javascript" />    
<link href="../../Scripts/MicrosoftMvcValidation.js" type="text/javascript" /> 

Cualquier idea de lo que estoy haciendo mal.Me siento como que me falta algo simple y la documentación de MVC 2 es escasa.

Editar: He añadido el enlace:

<link href="../../Scripts/MicrosoftMvcJQueryValidation.js" type="text/javascript" />

Y he incluido el archivo en mi proyecto que tuve que descargar de los enlaces de las respuestas.Todavía no funciona en absoluto.Cualquier otra idea?

Editar: Estoy utilizando Visual Studio 2008 con MVC 2 RC (no beta) y estoy buscando alguna versión descargable publicado ejemplos de validación por parte del cliente trabajando con la versión RC.

¿Fue útil?

Solución 2

Ok cuenta de esto ... y es 100% culpa mía. Aunque, un par de los mensajes incluye alguna información que me hacía falta también.

El problema principal, que estoy sorprendido nadie se dio cuenta, era mi HTML para incluir los scripts ... mirar hacia arriba en mi puesto y ver si se puede ver el problema.

Yo estaba usando una etiqueta <link href=... lugar de la etiqueta <script src=... adecuada. Totalmente mi culpa como me había cortado de forma rápida y pegado el enlace de CSS sin pensar y acaba de cambiar el tipo y archivo. Duh !!!

De todas formas los vínculos correctos requeridos son:

<script src="/Scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery.validate.min.js" type="text/javascript"></script>
<script src="/Scripts/MicrosoftMvcJQueryValidation.js" type="text/javascript"></script>

Todo funciona entonces. Que definitivamente hace necesario incluir el archivo '' MicrosoftMvcJQueryValidation.js de los futuros del proyecto, de modo que estoy upvoted todos los mensajes que mencionaban eso.

Fuera de la caja a pesar de que el archivo no está incluido. Si no está preocupado por el uso de jQuery a continuación, puedes utilizar la siguiente incluye utilizar la aplicación Microsoft que funcionará fuera de la caja con el RC:

<script src="/Scripts/MicrosoftAjax.js" type="text/javascript"></script>
<script src="/Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
<script src="/Scripts/MicrosoftMvcValidation.js" type="text/javascript"></script>    

Espero poder ahorrar por lo menos una persona alguna pena ... Todavía no puedo creer lo que podría haber metido la pata de la inclusión y no se nota por taaaaan largo.

Gracias de nuevo por toda su ayuda.

Otros consejos

Cuando se actualiza proyecto de MVC Beta 2, utilice: /src/MvcFutures/MicrosoftMvcJQueryValidation.js MVC 2 RC Fuente paquete de código ( enlace ). Más vieja versión Beta no funcionan correctamente con jquery.validation en RC. archivos javascript que se necesitan son:

<script src="/Scripts/jquery-1.3.2.min.js" type="text/javascript" />
<script src="/Scripts/jquery.validate.min-vsdoc.js" type="text/javascript" />
<script src="/Scripts/MicrosoftMvcJQueryValidation.js" type="text/javascript" />

Versión derecha de MicrosoftMvcJQueryValidation.js contiene este $ (document) ready () Función:

// need to wait for the document to signal that it is ready
$(document).ready(function() {
    var allFormOptions = window.mvcClientValidationMetadata;
    if (allFormOptions) {
        while (allFormOptions.length > 0) {
            var thisFormOptions = allFormOptions.pop();
            __MVC_EnableClientValidation(thisFormOptions);
        }
    }
});

al final del archivo (en la versión RC).

Hay que incluir MicrosoftMvcJQueryValidation.js file:

<link href="MicrosoftMvcJQueryValidation.js" type="text/javascript" />

Comprobar esto: ¿Dónde está la versión correcta de MicrosoftMvcJQueryValidation.js para MVC 2 beta 2?

A continuación sólo hay que poner en algún lugar Html.EnableClientValidation(); en la página Ver. Es debe antes de ser la primera forma que desea validar el lado del cliente. Yo prefiero Site.Master página.

Trabajo sobre ASP.NET MVC 2 RC.

¿Está seguro de que incluye los archivos JS correctos? Debido a su mensaje en de Phill Haack se ha fijado en su lugar MicrosoftMvcJQueryValidation.js de MicrosoftMvcValidation.js.

También establece la propiedad ClientValidationFunction en la vista:

<% ViewContext.FormContext.ClientValidationFunction 
= "EnableClientValidation"; %>

A pesar de que no era RC, pero Beta.

El valor predeterminado (y sólo con el apoyo de Microsoft) sistema de validación en el ASP.NET MVC 2 Candidato de lanzamiento no utiliza jQuery Validar. En su lugar, utiliza un nuevo sistema de validación que existe en su totalidad en MicrosoftMvcValidation.js (aunque usted también necesita incluir MicrosoftAjax.js).

Si desea utilizar la biblioteca jQuery Validar, que se incluye como parte del proyecto de ASP.NET MVC Futuros (disponible aquí ), que es una descarga independiente, y tiene su propio archivo de script adaptador.

Además, en relación con el ayudante Html.ValidationSummary(), creo que debe ser incluido dentro del formulario si desea que tenga la nueva funcionalidad del lado del cliente. Se seguirá funcionando si es fuera de la forma, sino que lo hará solamente del lado del servidor de trabajo.

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