ValidationSummary
in namespace DotVVM.Framework.Controls
Displays all validation messages from the current Validation.Target.
Usage & Scenarios
Displays all validation errors in a list.
Look at the Validation tutorial to see how the validation works.
Sample 1: Basic ValidationSummary
The ValidationSummary
will display all validation errors in the validation context.
<dot:TextBox Text="{value: Text}" />
<dot:ValidationSummary />
<dot:Button Text="SEND" Click="{command: Send()}" />
using System.ComponentModel.DataAnnotations;
namespace DotvvmWeb.Views.Docs.Controls.builtin.ValidationSummary.sample1
{
public class ViewModel
{
[Required]
public string Text { get; set; }
public void Send()
{
// process data
}
}
}
Sample 2: Validation errors from child objects
By default, the ValidationSummary
control displays errors that comes directly from the Validation.Target
object's properties.
If the validation target contains another child objects, the validation errors from those objects are not displayed.
This is because of performance reasons.
However, using the IncludeErrorsFromChildren
property, you can tell the control to display validation errors event from the
child objects. Just be careful because there will be a performance penalty if you use this feature on large and complicated viewmodels.
<dot:TextBox Text="{value: ChildObject.Text}" />
<dot:ValidationSummary IncludeErrorsFromChildren="true" />
<dot:Button Text="SEND" Click="{command: Send()}" />
using System.ComponentModel.DataAnnotations;
namespace DotvvmWeb.Views.Docs.Controls.builtin.ValidationSummary.sample2
{
public class ViewModel
{
public ChildViewModel ChildObject { get; set; } = new ChildViewModel();
public void Send()
{
// process data
}
}
public class ChildViewModel
{
[Required]
public string Text { get; set; }
}
}
Sample 3: Validation errors from the Validation.Target
You can also tell the ValidationSummary
control to display validation errors attached directly to the Validation.Target
itself using the IncludeErrorsFromTarget
property.
The sample below creates a server-side validation error using the IValidatableObject interface.
<dot:TextBox Text="{value: ChildObject.Text1}" />
<dot:TextBox Text="{value: ChildObject.Text2}" />
<dot:ValidationSummary IncludeErrorsFromTarget="true"
Validation.Target="{value: ChildObject}"/>
<dot:Button Text="SEND" Click="{command: Send()}" />
using DotVVM.Framework.ViewModel;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace DotvvmWeb.Views.Docs.Controls.builtin.ValidationSummary.sample3
{
public class ViewModel
{
public ChildViewModel ChildObject { get; set; } = new ChildViewModel();
public void Send()
{
// process data
}
}
public class ChildViewModel : IValidatableObject
{
[Required]
public string Text1 { get; set; }
[Required]
public string Text2 { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (Text1 != Text2)
{
yield return new ValidationResult("This ChildViewModel is not valid.");
}
}
}
}
Properties
Name | Type | Description | Notes | Default Value | |
---|---|---|---|---|---|
Attributes | Dictionary<String,Object> |
attribute
static value
|
null | ||
ClientIDMode | ClientIDMode | Gets or sets the client ID generation algorithm. |
attribute
static value
|
Static | |
DataContext | Object | Gets or sets a data context for the control and its children. All value and command bindings are evaluated in context of this value. |
attribute
static value
bindable
|
null | |
ID | String | Gets or sets the unique control ID. |
attribute
static value
|
null | |
IncludeErrorsFromChildren | Boolean | Gets or sets whether the errors from child objects in the viewmodel will be displayed too. |
attribute
static value
|
False | |
IncludeErrorsFromTarget | Boolean | Gets or sets whether the errors from the TargetProperty object will be displayed too. |
attribute
static value
|
False | |
InnerText | String | Gets or sets the inner text of the HTML element. |
attribute
static value
bindable
|
null | |
Visible | Boolean | Gets or sets whether the control is visible. |
attribute
bindable
|
True |
HTML produced by the control
This control renders the HTML unordered list.
<ul data-bind="foreach: ...">
<li data-bind="..."></li>
</ul>