0

Ich bin derzeit dabei, ein Projekt von MVC1 auf MVC2 zu migrieren. Wir verwenden xVal für die clientseitige Validierung.Upgrade von MVC1/xVal-Projekt auf MVC2 und Kompatibilitäten mit clientseitiger Validierung

Von dem, was ich verstehe, muss ich nur Referenzen zu xVal entfernen und durch MVC2 EnableClientSideValidation ersetzen und es sollte den Trick tun. Alles andere wäre erforderlich?

Auch mit xval konnte nicht auf Client-Seite eine Liste von Modellen validieren, ist es immer noch der Fall mit MVC2 + ClientSideValidation? (Was ich mit der "Liste der Modelle" bedeuten tut Validierung auf einem List<TypeOfModel>)

Beispiel hierfür ist: Controller:

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

Modell1:

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

Model2:

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

Ansicht:

<% Html.EnableClientValidation(); %> 

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

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

     <input type="submit" /> 

    <% } %> 

View2:

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

Dies ist ein POC ist, wo MVC2 Client-Seite Prüfung fehlschlägt, da es durch das Feld ID validiert ...

+0

Sie haben recht, wenn Sie xVal-Referenzen entfernen. Ich denke, das sollte es sein. Ich bin mir nicht sicher über dein zweites Szenario. – Pradeep

+0

MVC3 ist jetzt out :). –

Antwort

0

dort gewesen, das getan, bekam das T-Shirt . Und ich wünschte, ich wäre nie dorthin gegangen - MVC2 Validierung ist ehrlich gesagt nicht gleichwertig mit xVal, sobald Sie xVal richtig implementiert haben. Darüber hinaus ist die MVC3-Validierung sehr viel besser. Also, wenn ich von xVal springen würde, würde ich dafür sorgen, dass es mit MVC3 funktioniert, welches ein ganz anderes Biest ist.

+0

Zu wissen, dass MVC3 nur RC ist, ist für uns leider keine Option, da wir einen stabilen stabilen dev benötigen. Könntest du mich vielleicht auf nützliche Ressourcen hinweisen, um den Übergang von MVC1 zu MVC2 zu MVC3 so schmerzlos wie möglich zu machen? – Erick

+0

Ich fühle dich - und das war mein Fehler für die ersten beiden Revisionen des MVC-Stacks. Wenn es in RC-Stadium ist, ist es wahrscheinlich, was Sie dagegen aufbauen sollten. –

+0

Ich habe meine Frage bearbeitet, um das Problem deutlicher zu machen – Erick

0

Obwohl ich etwas zu dem, was Wyatt sagte, hier vor allem den Teil über MVC3 abonnieren, aber ich habe MVC2 Client-Seite Validierung verwendet und es war überhaupt keine schlechte Erfahrung. Um Ihre Frage zu beantworten, müssen Sie Folgendes tun: 1. Fügen Sie MicrosoftAjax.js und MicrosoftMvcValidation.js in Ihre Ansicht ein 2. Dann rufen Sie einfach den Helfer <% Html.EnableClientValidation(); %>

Es sollte Ihre Validierungsregeln für DataAnnotation-Modelle erfassen und Ihnen ohne großen Aufwand eine Validierung auf der Clientseite ermöglichen.

+0

Ich habe meine Frage bearbeitet, um das Problem zu klären ... clientseitige Validierung validiert nicht alle Felder – Erick