--- title: Razor UI Controls slug: razor-ui-controls --- The Razor UI Controls are utilized in new [Razor project templates](/templates/websites) and the [World Validation](/world-validation#server-rendered-html-uis) Application. ### UI Component List Currently the component libraries include common Bootstrap UI Form Controls and Navigation Components: | Control | Description | |-------------------------|-----------------------------------------------------------------------------------| | @Html.ValidationSummary | Show validation summary error message unless there's an error in specified fields | | @Html.ValidationSuccess | Display a "Success Alert Box" | | @Html.FormInput | Display a `` UI Control | | @Html.FormTextarea | Display a `` UI Control | | @Html.FormSelect | Display a `` UI Control | | @Html.FormInput | Display a `` UI Control | | @Html.HiddenInputs | Emit HTML `` field for each specified Key/Value pair entry | | @Html.SvgImage | Return `` markup for the named image | | @Html.Nav | Display a list of NavItem's | | @Html.Navbar | Display the `navbar` main menu | | @Html.NavLink | Display a `nav-link` nav-item | | @Html.NavButtonGroup | Display a list of NavItem's `btn-group` | ### Bootstrap UI Form Controls The Bootstrap UI form controls include built-in support for validation where they can render validation errors from ServiceStack's `ResponseStatus` object, e.g the [Login Page](/world-validation#login-page) in World Validation: ```cs
``` ## Login Page UI The Login Page contains a standard Bootstrap Username/Password form with labels, placeholders and help text, which initially looks like:  What it looks like after submitting an empty form with Server Exception Errors rendered against their respective fields:  ### Form Control Properties The **Razor** controls uses anonymous objects and camelCase properties for its unbounded HTML Element Attribute List for attributes you want to add to the underlying HTML `` Element and a Typed `InputOptions` Class to specify the controls other high-level features, typically like: ```cs @Html.ControlName(new { /*htmlAttrs*/ }, new InputOptions { ... }) ``` The typed `InputOptions` class supports the following features: ```csharp /// High-level Input options for rendering HTML Input controls public class InputOptions { /// Display the Control inline public bool Inline { get; set; } /// Label for the control public string Label { get; set; } /// Class for Label public string LabelClass { get; set; } /// Override the class on the error message (default: invalid-feedback) public string ErrorClass { get; set; } /// Small Help Text displayed with the control public string Help { get; set; } /// Bootstrap Size of the Control: sm, lg public string Size { get; set; } /// Multiple Value Data Source for Checkboxes, Radio boxes and Select Controls public object Values { get; set; } /// Typed setter of Multi Input Values public IEnumerable