2016-04-28 6 views
1

In meinem EspaceClient/Compte.cshtml ich retrive eine Teilansicht. Es funktioniert, aber wenn der ModelState nicht gültig ist, erhalte ich nur die Teilansicht ohne seine Hauptansicht.Modell ungültige Rückkehr Teilansicht ohne Hauptansicht

Danke

function partialCoordonnees() { 
     $.ajax({ 
     url: '/Utilisateurs/Edit/'+ @Model.Id, 
     dataType: "html", 
     success: function (data) { 
     $('.fifth').html(data); 
     } 
     }); 
}; 

In meinem UtilisateursController

public ActionResult Edit(int? id) 
{ 
    Utilisateur utilisateur = db.Utilisateurs.Find(id); 
    return PartialView("_CoordonneesCompte", utilisateur); 
} 


public ActionResult Edit(Utilisateur utilisateur) 
{ 
    if (ModelState.IsValid) 
    { 
     db.Entry(utilisateur).State = EntityState.Modified; 
     db.SaveChanges(); 
     return RedirectToAction("Index", "EspaceClient", new { id=utilisateur.Id }); 
    } 
     return PartialView("_CoordonneesCompte", utilisateur); 
} 
+0

Überprüfen Sie das gerenderte HTML - es ist wahrscheinlich die vollständige Seite innerhalb des Zielelements eingefügt. AJAX wird einer Weiterleitungsanfrage nicht folgen. Wenn Sie eine Umleitung wünschen, müssen Sie die Antwort für die 302-Umleitung überprüfen und mit Javascript in Ihrem Callback navigieren. – Jasen

+0

Der erste Aufruf der Teilansicht erfolgt auf der ganzen Seite $ ('. Fünfte') .html (data); Das Problem ist in dieser Rückkehr PartialView ("_ CoordonneesCompte", utilisateur), wenn das Modell nicht gültig ist. Ich wusste nicht, wie ich das tue, was du mir gesagt hast – Mercenaire

Antwort

1

Server-seitige Validierung mit ModelState.IsValid

gehen nicht mit unaufdringlichen jQuery-Bibliothek

für die Client-seitige Validierung durchführen

hinzufügen jquery.unobtrusive-ajax.min.js und jquery.validate.min.js in Ihrer cshtml

[Beispiel]

//this code goes in your partialview 
$(function(){ 
    //allow the validation framework to re-prase the DOM 
    jQuery.validator.unobtrusive.parse(); 

    //or to give the parser some context, supply it with a selector 
    //jQuery validator will parse all child elements (deep) starting 
    //from the selector element supplied 
    jQuery.validator.unobtrusive.parse("#formId"); 
}); 


//then in your parent page handle the form submission 
$(function(){ 
    $("#SubmitButton").click(function(){ 
    if (!$("#Form1").valid()){ 
     return false; 
    } 
    }); 
}); 

dieses Beispiel genommen Form Here

Hoffnung es hilft Ihnen ...

Verwandte Themen