Domanda

Io non riesco a ottenere qualsiasi tipo di validazione lato client lavorando su un framework MVC 2 RC app.

Il mio modello è il seguente:

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; }
}

Il mio punto di vista ha il seguente codice:

<% 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>

Lascio entrambi i campi vuoti e fare clic sul pulsante di Prova e si va a destra per il controller di post gestore senza validazione lato client accadendo.Io non sono sicuro di quello che mi manca.

Ho il seguente javascript incluso anche in vista (non sono sicuro se ho bisogno di tutti):

<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" /> 

Qualsiasi idea di cosa sto facendo di sbagliato.Sento che mi manca qualcosa di semplice e la documentazione per MVC 2 è scarsa.

Edit: Ho aggiunto il link:

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

E ho inserito il file nel mio progetto che ho dovuto scaricare da uno dei collegamenti nelle risposte.Ancora non lavoro a tutti.Altre idee?

Edit: Sto usando Visual Studio 2008 con MVC 2 RC (non beta) e sto cercando qualsiasi scaricabile o inviato esempi di validazione lato client lavorare con la versione RC.

È stato utile?

Soluzione 2

Ok ho capito questo...ed è al 100% colpa mia.Anche se, un paio di post fornite alcune informazioni che ho bisogno anche.

Il problema principale, che mi sono sorpreso che nessuno ha notato, è stato il mio HTML per includere gli script...guardare il mio post e vedere se si può vedere il problema.

Stavo usando un <link href=... tag anziché il corretto <script src=... tag.Tutta colpa mia, come ho avuto rapidamente tagliato e incollato il collegamento CSS senza pensare e solo cambiato il tipo di file e il.Wow!!!

Comunque il link corretti richiesti sono:

<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>

Tutto funziona quindi.È sicuramente bisogno di includere il 'MicrosoftMvcJQueryValidation.js' file dalla futures progetto così sto con voto positivo di tutti i post che detto che.

Out of the box se il file NON è incluso.Se il tuo non è preoccupato utilizzando JQuery allora si può semplicemente utilizzare il seguente include utilizzare l'implementazione Microsoft che funziona out of the box con il 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>    

Spero di poter salvare almeno una persona di un certo dolore...Io ancora non riesco a credere a quanto ho potuto sfondare la comprendono e non notato per moooooolto tempo.

Grazie ancora per il vostro aiuto.

Altri suggerimenti

Quando si aggiorna il progetto da MVC 2 Beta, utilizzare: /src/MvcFutures/MicrosoftMvcJQueryValidation.js da MVC 2 RC Pacchetto di Codice Sorgente (link).Precedente versione Beta non funzionano correttamente con jquery.convalida in RC.Necessario file javascript sono:

<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" />

Versione giusta di MicrosoftMvcJQueryValidation.js contiene questo $(document).ready() funzione:

// 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);
        }
    }
});

alla fine del file (in versione RC).

È necessario includere MicrosoftMvcJQueryValidation.js file :

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

Controllare questo: Dove è la giusta versione di MicrosoftMvcJQueryValidation.js per MVC 2 beta 2?

La successiva basta mettere Html.EnableClientValidation(); da qualche parte nella pagina di Visualizzazione.Si deve prima che il primo modulo che si desidera lato client convalidare.Preferisco Sito.Master pagina.

Lavorando su ASP.NET MVC 2 RC.

Sei sicuro incluso il corretto file JS?Perché in Phill Haack post ha MicrosoftMvcJQueryValidation.js in allegato, invece di MicrosoftMvcValidation.js.

Egli definisce anche la ClientValidationFunction la struttura in vista :

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

Se questo non è stato RC, ma Beta.

Il default (e solo supportato da Microsoft) per sistema di validazione, in ASP.NET MVC 2 Release Candidate non fa uso di jQuery Validate.Invece, utilizza un nuovo sistema di validazione che esiste interamente in MicrosoftMvcValidation.js (se necessario includere MicrosoftAjax.js).

Se si desidera utilizzare jQuery Validate biblioteca, è incluso come parte del ASP.NET MVC Futures progetto (disponibile qui), che è un download separato e dispone di una propria scheda di file di script.

Inoltre, per quanto riguarda il Html.ValidationSummary() helper, io credo esso deve essere incluso all'interno del modulo se si desidera avere la nuova funzionalità lato client.Sarà ancora lavoro se è fuori forma, ma funzionerà solo sul lato server.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top