Frage

Ich kann nicht scheinen, um alle client-seitige Validierung arbeiten auf ein MVC 2 RC app.

Mein Modell hat die folgenden:

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

Meine Ansicht hat den folgenden code:

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

Ich lassen Sie beide Felder leer und klicken Sie auf die Schaltfläche "Test" und es geht direkt zu den controller-post-handler-ohne client-seitige Validierung geschieht.Ich bin nicht sicher, was ich bin fehlt.

Ich habe den folgenden javascript-Code auch in der Ansicht (nicht sicher, ob ich es brauche alle):

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

Irgendwelche Ideen, was ich falsch mache.Ich fühle mich wie ich bin etwas fehlt einfach und die Dokumentation für MVC 2 ist spärlich.

Edit: Ich habe den link Hinzugefügt:

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

Und ich habe die Datei in meinem Projekt, die ich hatte, zum download auf die links in den Antworten.Noch funktioniert nicht alles.Irgendwelche anderen Ideen?

Edit: Ich verwende Visual Studio 2008 mit MVC 2 RC (nicht die beta) und ich bin auf der Suche für jede herunterladbare oder gepostet Beispiele für client-seitige Validierung zu arbeiten mit die RC release.

War es hilfreich?

Lösung 2

Ok ich dachte mir, diese...und es ist zu 100% meine Schuld.Obwohl einige der Beiträge enthalten einige Informationen, dass ich nicht brauchen, auch.

Das Hauptproblem, das ich bin überrascht, niemand mitbekommen, war meine HTML-zu gehören die scripts...Blick auf meine post sehen und wenn Sie sehen können die problem.

Ich war mit einem <link href=... tag anstelle der richtige <script src=... tag.Ganz meine Schuld da hatte ich schnell geschnitten und eingefügt die CSS-link, ohne zu denken und nur die Art geändert und die Datei.Duh!!!

Sowieso die richtigen links erforderlich sind:

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

Alles funktioniert dann.Du solltest auf jeden Fall tun müssen 'MicrosoftMvcJQueryValidation.js' - Datei aus dem futures-Projekt, so bin ich von Ihnen positiv bewertet werden alle Beiträge, die erwähnt, dass.

Out of the box, obwohl die Datei ist NICHT im Lieferumfang enthalten.Wenn Ihr nicht besorgt über die Verwendung von JQuery, dann können Sie einfach die folgenden umfasst die Verwendung der Microsoft-Implementierung, die funktioniert out of the box mit den 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>    

Ich hoffe, ich kann sparen mindestens eine person einige Trauer...Ich kann immer noch nicht glauben, wie konnte ich verkorkst haben die zählen und nicht bemerkt, es für gaaaanz lange.

Nochmals vielen Dank für all Ihre Hilfe.

Andere Tipps

Wenn Sie update Projekt von MVC 2 Beta, verwenden Sie: /src/MvcFutures/MicrosoftMvcJQueryValidation.js von MVC 2 RC Quellcode-Paket (link).Ältere Beta-version nicht ordnungsgemäß mit jquery.Validierung in RC.Benötigt javascript-Dateien sind:

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

Richtige version von MicrosoftMvcJQueryValidation.js enthält diese $(document).ready() Funktion:

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

am Ende der Datei (in der RC-Version).

Sie enthalten MicrosoftMvcJQueryValidation.js Datei :

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

Überprüfen Sie dies: Wo ist die richtige version von MicrosoftMvcJQueryValidation.js für MVC 2 beta 2?

Als Nächstes legen Sie einfach Html.EnableClientValidation(); irgendwo in der Seite Anzeigen.Es muss vor der ersten form, die Sie möchten, auf client-Seite überprüfen.Ich bevorzuge Website.Master Seite.

Arbeiten ASP.NET MVC 2 RC.

Sind Sie sicher, dass Sie die richtigen JS-Dateien?Denn in Phill Haack ' s post es hat MicrosoftMvcJQueryValidation.js befestigt statt MicrosoftMvcValidation.js.

Er setzt auch die ClientValidationFunction Eigenschaft in der Ansicht :

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

Aber das war nicht das, RC, aber Beta.

Die Standard - (und nur von Microsoft unterstützt) validation system in der ASP.NET MVC 2 Release-Kandidat nicht die jQuery-Validierung.Statt, es verwendet eine neue Validierungs-system, das existiert ganz in MicrosoftMvcValidation.js (obwohl Sie auch tun müssen MicrosoftAjax.js).

Wenn Sie möchten, verwenden Sie die jQuery Validierung Bibliothek, es ist als Bestandteil des ASP.NET MVC Futures Projekt (verfügbar hier), das als separater download verfügbar und verfügt über einen eigenen adapter Skript-Datei.

Auch, in Bezug auf die Html.ValidationSummary() Helfer, ich glaube, es Bedürfnisse zu werden enthalten in das Formular ein, wenn Sie wollen, es zu haben, die neue client-seitige Funktionalität.Es wird immer noch funktionieren, wenn es ist außerhalb der form, aber es wird nur funktionieren, server-Seite.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top