I build fluent helper for build a html form in ASP MVC.
But the client validation d’ont work in this context.
Please help me to understand why in my helper the “EditorFor” not add the client validation.
@using (Html.BeginForm())
{
var html = Html.TextBoxFor(c => c.UserName); // Good example client validation
<input type="submit" value="ok" />
}
@FormHelpers.Form(Html.Form()
.Title("Connection utilisateur")
.Error("")
.AddMessage("Entrez vos identifiant.")
.AddRow(row => row
.AddField(
"Nom utilisateur",new EditItem()
{
Value = Html.TextBoxFor(model => model.UserName),
// Validation client is not added !
Error = Html.ValidationMessageFor(model => model.UserName),
}
))
.AddRow(row => row
.AddField(
"Mot de passe",
Html.Edit(model => model.Password)))
.AddRow(row => row
.AddField(
"Se souvenir<br/> de moi",
Html.Edit(model => model.Souvenir)))
.Build())
My Builder methode :
public FormViewModelBuilder AddRow(Func<FormRowViewModelBuilder, FormRowViewModelBuilder> rowBuildFunc)
{
FormRowViewModelBuilder builderRow = new FormRowViewModelBuilder();
FormRowViewModel row = rowBuildFunc(builderRow).FormRowViewModel;
FormViewModel.AddRow(row);
return this;
}
public FormRowViewModelBuilder AddField(string title, EditItem value)
{
FormFieldViewModel info = new FormFieldViewModel();
info.Title = title;
info.EditItem = value; **// Validation is not added !**
FormRowViewModel.Fields.Add(info);
return this;
}
I have the solution, but I dont understand MvcForm interact with generate client validation.
THe simple solution :
Or