dialogue de dialogue et de client asp.net mvc3 jquery ui
J'ai un problème avec la validation du client dans asp.net mvc3 application.
Mon code ressemble :
function loadEditCategoryDialog(categoryId) {
$.ajax({
url : "/rovastamp3/Admin/CategoryEditDialog",
data : "categoryId="+categoryId,
success : function(data){
$("#popup_dialog").html(data);
$("#popup_dialog").dialog({
modal: true,
draggable: false,
resizable: false,
title: "Upravit kategorii",
width: 600,
height: 500,
});
}
});
}
Contrôleur :
[HttpGet]
public ActionResult CategoryEditDialog(int categoryId)
{
CategoryEditViewModel categoryEditViewModel = new CategoryEditViewModel();
categoryEditViewModel.Category = _postAuctionCategoryRepo.Query()
.SingleOrDefault(x => x.Id == categoryId);
return PartialView(categoryEditViewModel);
}
[HttpPost]
public ActionResult CreateNewCategory(CategoryEditViewModel categoryEditViewModel)
{
if (ModelState.IsValid)
{
return RedirectToAction("Index");
}
return View("CategoryEditDialog", categoryEditViewModel);
}
Et enfin ma vue partielle :
@model Rovastamp.MVC3.ViewModels.AdminController.CategoryEditViewModel
<h2>Upravit kategorii @Model.Category.Name</h2>
@{Html.EnableClientValidation();}
@using (Html.BeginForm("CreateNewCategory", "Admin"))
{
@Html.ValidationSummary(true)
<fieldset>
<legend>Objednávkový formulář</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Category.Name)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.Category.Name)
@Html.ValidationMessageFor(model => model.Category.Name)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Category.Position)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.Category.Position)
@Html.ValidationMessageFor(model => model.Category.Position)
</div>
<input type="submit" value="Upravit" class="submit_button" />
</fieldset>
}
Dans mon web.config j'ai allumé UnobtrusiveJavaScript et ClientValidatin les paramètres de l'application.
Si je clik sur le bouton soumettre sur jquery ui dialog, mvc ne actualisation complète sans validation sur le client?
Où est le problème?
Merci pour toute aide
EDIT :
Dans ma Mise en page-je inclure ce script :
- jquery.unobtrusive-ajax.js
- jquery.validate.js
- jquery.validate.unobtrusive.js
EDIT 2
Dans mon exemaple j'ai mis :
jQuery.validator.unobtrusive.parse('#popup_dialog');
avant que j'appelle jquery ui dialogue et à la validation du client fonctionne parfaitement.
source d'informationauteur Mennion
Vous devez vous connecter pour publier un commentaire.
C'est parce que vous chargez un PartialView dans une Vue qui a déjà été analysé par le jquery.programme de validation.non-intrusif de la bibliothèque. Vous devez charger la bibliothèque de l'analyser à nouveau la page de tenir compte de votre injecté PartialView attributs de validation. Lire ce blog de la mine sur le sujet, il espère pouvoir répondre à votre question.
En plus de câblage de votre bouton soumettre comme
Vous devez spécifiques le formulaire html pour l'analyser, il n'a pas fonctionné pour moi, en utilisant le constructeur par défaut.
Je suis en train d'essayer de trouver un moyen de sorte que vous n'avez pas de fil de chaque bouton soumettre sur chaque formulaire, seront poster ici si je trouve un moyen.
J'ai lutté avec cette question,
Après plusieurs heures, j'ai conclu que jQuery rendu de la boîte de DIALOGUE de l'élément HTML, à l'extérieur de l'élément de formulaire.
Depuis jQuery.Validation plugin ne fonctionne qu'à l'intérieur de l'élément de FORMULAIRE,
Il est nécessaire de retourner la boîte de Dialogue à l'intérieur de la Forme de la portée, ce qui peut être fait par la suite ouvrir la gestion des événements:
Sont vous, y compris les bon fichiers JavaScript pour le côté client de validation?
Vérifier la console JavaScript lors de l'exécution de l'action soumettre, je parie qu'il y a une erreur là, qui est à l'origine du JavaScript à l'erreur, puis de la forme par défaut de soumettre l'action est coups de pied dans.