2009-12-17 4 views
1

J'essaie d'utiliser le example de ce site pour effectuer la validation du site client. J'essaie d'utiliser la balise html form au lieu du Html.BeginForm() mais cela désactive la validation côté client. Est-ce que EnableClientValidation fonctionne uniquement avec Html.BeginForm. Quelle est la différence?Validation du client/serveur ASP.Net MVC

<%@ Page Language="C#" Inherits="ViewPage<ProductViewModel>" %> 

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

    <%= Html.TextBoxFor(m => m.Title) %> 
    <%= Html.ValidationMessageFor(m => m.Title) %> 
    <%= Html.TextBoxFor(m => m.Price) %> 
    <%= Html.ValidationMessageFor(m => m.Price) %> 

    <input type="submit" /> 
<% } %> 

Répondre

1

Depuis le poste que vous avez lié (souligné dans l'original):

L'étape suivante consiste à activer la validation du client pour le formulaire en appelant EnableClientValidation avant d'appeler BeginForm. Sous le capot, cela définit un indicateur dans le nouveau FormContext qui permet à la méthode BeginForm savoir que la validation du client est activée. De cette façon, si vous définissez un ID pour le formulaire, nous saurons quel ID utiliser lors de l'accrochage de la validation du client. Si vous ne le faites pas, le formulaire vous en rendra un.

La méthode BeginForm est évidemment fait plus dans ASP.NET MVC 2 que simplement « rendre une balise form » - il est également rendu tout le script client pour la validation si ce drapeau est réglé.

+0

merci pour votre réponse. En essayant d'utiliser les contrôles telerik à l'intérieur de la Html.BeginForm et je reçois le RADScriptManager nécessite une forme runat = "serveur" erreur. Si j'ajoute un tag de formulaire html, par exemple

sur la page et que j'ajoute scriptmanager, alors le Html.EnableClientValidation n'est pas déclenché. Y at-il un moyen d'obtenir l'utilisation de contrôles telerik dans la méthode BeginForm sans utiliser le scriptmanager? – ace

+0

Ah. Les joies d'essayer de mélanger les webcontrols dans ASP.NET MVC;) Je ne suis pas sûr - le contrôle voudra utiliser son ScriptManager pour s'assurer que tous ses fichiers JS sont chargés. Quels contrôles utilisez-vous? Avez-vous envisagé d'autres contrôles plus conviviaux MVC, tels que CKEditor (http://ckeditor.com/). –

+0

oui, les "joies" :) Im en utilisant radcombobox, datepicker et radspell. – ace