J'utilise jQuery.load()
pour afficher une vue partielle. Cette partie ressemble à ceci:ASP.NET MVC 2 chargement partiel vue en utilisant jQuery - aucune validation côté client
$('#sizeAddHolder').load(
'/MyController/MyAction', function() { ... });
Le code pour des actions dans mon contrôleur est le suivant:
public ActionResult MyAction(byte id)
{
var model = new MyModel
{
ObjectProp1 = "Some text"
};
return View(model);
}
[HttpPost]
public ActionResult MyAction(byte id, FormCollection form)
{
// TODO: DB insert logic goes here
var result = ...;
return Json(result);
}
Je retournais une vue partielle qui ressemble à ceci:
<% using (Html.BeginForm("MyAction", "MyController")) {%>
<%= Html.ValidationSummary(true) %>
<h3>Create my object</h3>
<fieldset>
<legend>Fields</legend>
<div class="editor-label">
<%= Html.LabelFor(model => model.ObjectProp1) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.Size.ObjectProp1) %>
<%= Html.ValidationMessageFor(model => model.ObjectProp1) %>
</div>
div class="editor-label">
<%= Html.LabelFor(model => model.ObjectProp2) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.ObjectProp2) %>
<%= Html.ValidationMessageFor(model => model.ObjectProp2) %>
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
<% } %>
La validation côté client ne fonctionne pas dans ce cas. De plus, le script qui contient des messages de validation n'est pas inclus dans la vue qui est retournée. Les deux propriétés de ma classe de modèle ont les attributs Required
et StringLength
. Y at-il un moyen de déclencher la validation côté client dans une vue qui a été chargée comme ça?
Nous vous remercions d'informations précieuses. J'ai corrigé ces erreurs mais cela ne fait pas vraiment de différence. Le html rendu est exactement le même dans les deux cas puisque 'load()' obtient le html de la même façon que 'ajax()' utilise XMLHttpRequest et 'renvoie View (model)' s'il n'y a pas SomeAction.aspx rend SomeAction.ascx . Jetez un oeil ici: http://stackoverflow.com/questions/2043394/what-is-the-difference-between-a-view-and-a-partialview-in-asp-net-mvc Donc le problème principal est toujours là: pas de validation côté client; aucun code contenant des messages de validation .. –
Le code ci-dessus ne résout pas le problème original –
il peut renvoyer une vue aussi, cela n'a pas vraiment d'importance tant que la vue qu'il renvoie n'utilise pas la même page maître que celle où il s'appelle – Omu