<form method="post" novalidate="novalidate">
<div class="form-group">
-<label for="MyDetailedModel_Name">Name</label>
-<input type="text" data-val="true" data-val-required="The Name field is required." id="MyDetailedModel_Name" name="MyDetailedModel.Name" value="John Surname" class="form-control ">
-<span class="text-danger field-validation-valid" data-valmsg-for="MyDetailedModel.Name" data-valmsg-replace="true"></span>
+ <label for="MyDetailedModel_Name">Name</label>
+ <input type="text" data-val="true" data-val-required="The Name field is required." id="MyDetailedModel_Name" name="MyDetailedModel.Name" value="" class="form-control " placeholder="Enter your name...">
+ <span class="text-danger field-validation-valid" data-valmsg-for="MyDetailedModel.Name" data-valmsg-replace="true"></span>
</div>
<div class="form-group">
-<label for="MyDetailedModel_Description">Description</label>
-<textarea id="MyDetailedModel_Description" name="MyDetailedModel.Description" rows="4" class="form-control ">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</textarea>
-<span class="text-danger field-validation-valid" data-valmsg-for="MyDetailedModel.Description" data-valmsg-replace="true"></span>
+ <label for="MyDetailedModel_Description">Description</label>
+ <textarea id="MyDetailedModel_Description" name="MyDetailedModel.Description" rows="4" class="form-control ">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</textarea>
+ <span class="text-danger field-validation-valid" data-valmsg-for="MyDetailedModel.Description" data-valmsg-replace="true"></span>
</div>
<div class="form-group">
-<label for="MyDetailedModel_Password">Password</label>
-<input type="password" data-val="true" data-val-required="The Password field is required." id="MyDetailedModel_Password" name="MyDetailedModel.Password" class="form-control ">
-<span class="text-danger field-validation-valid" data-valmsg-for="MyDetailedModel.Password" data-valmsg-replace="true"></span>
+ <label for="MyDetailedModel_Password">Password</label>
+ <input type="password" data-val="true" data-val-required="The Password field is required." id="MyDetailedModel_Password" name="MyDetailedModel.Password" class="form-control ">
+ <span class="text-danger field-validation-valid" data-valmsg-for="MyDetailedModel.Password" data-valmsg-replace="true"></span>
</div>
<div class="form-check">
-<input type="checkbox" checked="checked" data-val="true" data-val-required="The Is Active field is required." id="MyDetailedModel_IsActive" name="MyDetailedModel.IsActive" value="true" class="form-check-input "><input name="MyDetailedModel.IsActive" type="hidden" value="false">
-<label class="form-check-label" for="MyDetailedModel_IsActive">Is Active</label>
+ <input type="checkbox" checked="checked" data-val="true" data-val-required="The Is Active field is required." id="MyDetailedModel_IsActive" name="MyDetailedModel.IsActive" value="true" class="form-check-input "><input name="MyDetailedModel.IsActive" type="hidden" value="false">
+ <label class="form-check-label" for="MyDetailedModel_IsActive">Is Active</label>
</div>
<div class="form-group">
-<label for="MyDetailedModel_Age">Age</label>
-<input type="number" data-val="true" data-val-required="The Age field is required." id="MyDetailedModel_Age" name="MyDetailedModel.Age" value="65" class="form-control ">
-<span class="text-danger field-validation-valid" data-valmsg-for="MyDetailedModel.Age" data-valmsg-replace="true"></span>
+ <label for="MyDetailedModel_Age">Age</label>
+ <input type="number" data-val="true" data-val-required="The Age field is required." id="MyDetailedModel_Age" name="MyDetailedModel.Age" value="65" class="form-control ">
+ <span class="text-danger field-validation-valid" data-valmsg-for="MyDetailedModel.Age" data-valmsg-replace="true"></span>
</div>
<div class="form-group">
-<label for="MyDetailedModel_MyCarType">My Car Type</label>
-<select data-val="true" data-val-required="The My Car Type field is required." id="MyDetailedModel_MyCarType" name="MyDetailedModel.MyCarType" class="form-control valid" aria-describedby="MyDetailedModel_MyCarType-error" aria-invalid="false">
- <option value="0">Sedan</option>
- <option value="1">Hatchback</option>
- <option value="2">StationWagon</option>
- <option selected="selected" value="3">Coupe</option>
-</select>
+ <label for="MyDetailedModel_MyCarType">My Car Type</label>
+ <select data-val="true" data-val-required="The My Car Type field is required." id="MyDetailedModel_MyCarType" name="MyDetailedModel.MyCarType" class="form-control valid" aria-describedby="MyDetailedModel_MyCarType-error" aria-invalid="false">
+ <option value="0">Sedan</option>
+ <option value="1">Hatchback</option>
+ <option value="2">StationWagon</option>
+ <option selected="selected" value="3">Coupe</option>
+ </select>
</div>
<div class="custom-control custom-radio custom-control-inline">
-<input type="radio" id="MyDetailedModel.YourCarTypeRadio0" name="MyDetailedModel.YourCarType" value="0" checked="checked" class="custom-control-input">
-<label class="custom-control-label" for="MyDetailedModel.YourCarTypeRadio0">Sedan</label>
+ <input type="radio" id="MyDetailedModel.YourCarTypeRadio0" name="MyDetailedModel.YourCarType" value="0" checked="checked" class="custom-control-input">
+ <label class="custom-control-label" for="MyDetailedModel.YourCarTypeRadio0">Sedan</label>
</div>
<div class="custom-control custom-radio custom-control-inline">
-<input type="radio" id="MyDetailedModel.YourCarTypeRadio1" name="MyDetailedModel.YourCarType" value="1" class="custom-control-input">
-<label class="custom-control-label" for="MyDetailedModel.YourCarTypeRadio1">Hatchback</label>
+ <input type="radio" id="MyDetailedModel.YourCarTypeRadio1" name="MyDetailedModel.YourCarType" value="1" class="custom-control-input">
+ <label class="custom-control-label" for="MyDetailedModel.YourCarTypeRadio1">Hatchback</label>
</div>
<div class="custom-control custom-radio custom-control-inline">
-<input type="radio" id="MyDetailedModel.YourCarTypeRadio2" name="MyDetailedModel.YourCarType" value="2" class="custom-control-input">
-<label class="custom-control-label" for="MyDetailedModel.YourCarTypeRadio2">StationWagon</label>
+ <input type="radio" id="MyDetailedModel.YourCarTypeRadio2" name="MyDetailedModel.YourCarType" value="2" class="custom-control-input">
+ <label class="custom-control-label" for="MyDetailedModel.YourCarTypeRadio2">StationWagon</label>
</div>
<div class="custom-control custom-radio custom-control-inline">
-<input type="radio" id="MyDetailedModel.YourCarTypeRadio3" name="MyDetailedModel.YourCarType" value="3" class="custom-control-input">
-<label class="custom-control-label" for="MyDetailedModel.YourCarTypeRadio3">Coupe</label>
+ <input type="radio" id="MyDetailedModel.YourCarTypeRadio3" name="MyDetailedModel.YourCarType" value="3" class="custom-control-input">
+ <label class="custom-control-label" for="MyDetailedModel.YourCarTypeRadio3">Coupe</label>
</div>
<div class="form-group">
-<label for="MyDetailedModel_Day">Day</label>
-<input type="date" data-val="true" data-val-required="The Day field is required." id="MyDetailedModel_Day" name="MyDetailedModel.Day" value="2018-12-19" class="form-control ">
-<span class="text-danger field-validation-valid" data-valmsg-for="MyDetailedModel.Day" data-valmsg-replace="true"></span>
+ <label for="MyDetailedModel_Day">Day</label>
+ <input type="date" data-val="true" data-val-required="The Day field is required." id="MyDetailedModel_Day" name="MyDetailedModel.Day" value="2018-12-19" class="form-control ">
+ <span class="text-danger field-validation-valid" data-valmsg-for="MyDetailedModel.Day" data-valmsg-replace="true"></span>
</div>
<div class="form-group">
-<label for="MyDetailedModel_Country">Country</label>
-<select id="MyDetailedModel_Country" name="MyDetailedModel.Country" class="form-control">
- <option value="CA">Canada</option>
- <option value="US">USA</option>
- <option value="UK">United Kingdom</option>
- <option selected="selected" value="RU">Russia</option>
-</select>
+ <label for="MyDetailedModel_Country">Country</label>
+ <select id="MyDetailedModel_Country" name="MyDetailedModel.Country" class="form-control">
+ <option value="CA">Canada</option>
+ <option value="US">USA</option>
+ <option value="UK">United Kingdom</option>
+ <option selected="selected" value="RU">Russia</option>
+ </select>
</div>
<div class="form-group">
-<label for="MyDetailedModel_NeighborCountries">Neighbor Countries</label>
-<select id="MyDetailedModel_NeighborCountries" multiple="multiple" name="MyDetailedModel.NeighborCountries" class="form-control">
- <option selected="selected" value="CA">Canada</option>
- <option value="US">USA</option>
- <option selected="selected" value="UK">United Kingdom</option>
- <option value="RU">Russia</option>
-</select>
+ <label for="MyDetailedModel_NeighborCountries">Neighbor Countries</label>
+ <select id="MyDetailedModel_NeighborCountries" multiple="multiple" name="MyDetailedModel.NeighborCountries" class="form-control">
+ <option selected="selected" value="CA">Canada</option>
+ <option value="US">USA</option>
+ <option selected="selected" value="UK">United Kingdom</option>
+ <option value="RU">Russia</option>
+ </select>
</div>
<input name="__RequestVerificationToken" type="hidden" value="CfDJ8Kbwu8pRBWJCh6KUtTDoAuTDS8evmWgc2dNZYWkzjZ1xFcA9ptyCgQBCTgA9NMoh_FXGRBDVunA7fx0TF1df1_OxaxerJvuWRCwFBhy8KbPcgXrVtmtSp6Z28gpFpO0Z1TSO1pdgdTwEXj43DBWq0Hc">
<button type="submit" class="btn btn-primary" data-busy-text="Processing..."><span>Submit</span></button>
@@ -253,24 +254,24 @@ public class DynamicFormsModel : PageModel
<form method="post">
<div class="form-group">
-<label for="MyOrderExampleModel_City">City</label>
-<input type="text" id="MyOrderExampleModel_City" name="MyOrderExampleModel.City" value="" class="form-control ">
-<span class="text-danger field-validation-valid" data-valmsg-for="MyOrderExampleModel.City" data-valmsg-replace="true"></span>
+ <label for="MyOrderExampleModel_City">City</label>
+ <input type="text" id="MyOrderExampleModel_City" name="MyOrderExampleModel.City" value="" class="form-control ">
+ <span class="text-danger field-validation-valid" data-valmsg-for="MyOrderExampleModel.City" data-valmsg-replace="true"></span>
</div>
<div class="form-group">
-<label for="MyOrderExampleModel_EmailAddress">EmailAddress</label>
-<input type="text" id="MyOrderExampleModel_EmailAddress" name="MyOrderExampleModel.EmailAddress" value="" class="form-control ">
-<span class="text-danger field-validation-valid" data-valmsg-for="MyOrderExampleModel.EmailAddress" data-valmsg-replace="true"></span>
+ <label for="MyOrderExampleModel_EmailAddress">EmailAddress</label>
+ <input type="text" id="MyOrderExampleModel_EmailAddress" name="MyOrderExampleModel.EmailAddress" value="" class="form-control ">
+ <span class="text-danger field-validation-valid" data-valmsg-for="MyOrderExampleModel.EmailAddress" data-valmsg-replace="true"></span>
</div>
<div class="form-group">
-<label for="MyOrderExampleModel_Name">Name</label>
-<input type="text" id="MyOrderExampleModel_Name" name="MyOrderExampleModel.Name" value="" class="form-control ">
-<span class="text-danger field-validation-valid" data-valmsg-for="MyOrderExampleModel.Name" data-valmsg-replace="true"></span>
+ <label for="MyOrderExampleModel_Name">Name</label>
+ <input type="text" id="MyOrderExampleModel_Name" name="MyOrderExampleModel.Name" value="" class="form-control ">
+ <span class="text-danger field-validation-valid" data-valmsg-for="MyOrderExampleModel.Name" data-valmsg-replace="true"></span>
</div>
<div class="form-group">
-<label for="MyOrderExampleModel_Surname">Surname</label>
-<input type="text" id="MyOrderExampleModel_Surname" name="MyOrderExampleModel.Surname" value="" class="form-control ">
-<span class="text-danger field-validation-valid" data-valmsg-for="MyOrderExampleModel.Surname" data-valmsg-replace="true"></span>
+ <label for="MyOrderExampleModel_Surname">Surname</label>
+ <input type="text" id="MyOrderExampleModel_Surname" name="MyOrderExampleModel.Surname" value="" class="form-control ">
+ <span class="text-danger field-validation-valid" data-valmsg-for="MyOrderExampleModel.Surname" data-valmsg-replace="true"></span>
</div>
<input name="__RequestVerificationToken" type="hidden" value="CfDJ8Kbwu8pRBWJCh6KUtTDoAuQICDXiCEgWpOHc7uIzSQ2dKiezdDkWplt2D8XLsCX39Z8B_GnplHrAfZgZ5GkNZN-tkEgKlMtyjoWv9MADyYb2MmWw-LuW8wfUXI9YSza5lo_8P03Vff4NxmrV3boG0xQ">
</form>
@@ -336,32 +337,32 @@ public class DynamicFormsModel : PageModel
<form method="post">
<div class="form-group">
-<input type="hidden" id="MyAttributeExamplesModel_HiddenInput" name="MyAttributeExamplesModel.HiddenInput" value="" class="form-control ">
+ <input type="hidden" id="MyAttributeExamplesModel_HiddenInput" name="MyAttributeExamplesModel.HiddenInput" value="" class="form-control ">
</div>
<div class="form-group">
-<label for="MyAttributeExamplesModel_DisabledInput">DisabledInput</label>
-<input type="text" id="MyAttributeExamplesModel_DisabledInput" name="MyAttributeExamplesModel.DisabledInput" value="Disabled Input" disabled="" class="form-control ">
-<span class="text-danger field-validation-valid" data-valmsg-for="MyAttributeExamplesModel.DisabledInput" data-valmsg-replace="true"></span>
+ <label for="MyAttributeExamplesModel_DisabledInput">DisabledInput</label>
+ <input type="text" id="MyAttributeExamplesModel_DisabledInput" name="MyAttributeExamplesModel.DisabledInput" value="Disabled Input" disabled="" class="form-control ">
+ <span class="text-danger field-validation-valid" data-valmsg-for="MyAttributeExamplesModel.DisabledInput" data-valmsg-replace="true"></span>
</div>
<div class="form-group">
-<label for="MyAttributeExamplesModel_ReadonlyInput">ReadonlyInput</label>
-<input type="text" id="MyAttributeExamplesModel_ReadonlyInput" name="MyAttributeExamplesModel.ReadonlyInput" value="Readonly Input" class="form-control " readonly="">
-<span class="text-danger field-validation-valid" data-valmsg-for="MyAttributeExamplesModel.ReadonlyInput" data-valmsg-replace="true"></span>
+ <label for="MyAttributeExamplesModel_ReadonlyInput">ReadonlyInput</label>
+ <input type="text" id="MyAttributeExamplesModel_ReadonlyInput" name="MyAttributeExamplesModel.ReadonlyInput" value="Readonly Input" class="form-control " readonly="">
+ <span class="text-danger field-validation-valid" data-valmsg-for="MyAttributeExamplesModel.ReadonlyInput" data-valmsg-replace="true"></span>
</div>
<div class="form-group">
-<label for="MyAttributeExamplesModel_ReadonlyPlainTextInput">ReadonlyPlainTextInput</label>
-<input type="text" id="MyAttributeExamplesModel_ReadonlyPlainTextInput" name="MyAttributeExamplesModel.ReadonlyPlainTextInput" value="Readonly Plain Text Input" class="form-control-plaintext " readonly="">
-<span class="text-danger field-validation-valid" data-valmsg-for="MyAttributeExamplesModel.ReadonlyPlainTextInput" data-valmsg-replace="true"></span>
+ <label for="MyAttributeExamplesModel_ReadonlyPlainTextInput">ReadonlyPlainTextInput</label>
+ <input type="text" id="MyAttributeExamplesModel_ReadonlyPlainTextInput" name="MyAttributeExamplesModel.ReadonlyPlainTextInput" value="Readonly Plain Text Input" class="form-control-plaintext " readonly="">
+ <span class="text-danger field-validation-valid" data-valmsg-for="MyAttributeExamplesModel.ReadonlyPlainTextInput" data-valmsg-replace="true"></span>
</div>
<div class="form-group">
-<label for="MyAttributeExamplesModel_LargeInput">LargeInput</label>
-<input type="text" id="MyAttributeExamplesModel_LargeInput" name="MyAttributeExamplesModel.LargeInput" value="Large Input" class="form-control form-control-lg">
-<span class="text-danger field-validation-valid" data-valmsg-for="MyAttributeExamplesModel.LargeInput" data-valmsg-replace="true"></span>
+ <label for="MyAttributeExamplesModel_LargeInput">LargeInput</label>
+ <input type="text" id="MyAttributeExamplesModel_LargeInput" name="MyAttributeExamplesModel.LargeInput" value="Large Input" class="form-control form-control-lg">
+ <span class="text-danger field-validation-valid" data-valmsg-for="MyAttributeExamplesModel.LargeInput" data-valmsg-replace="true"></span>
</div>
<div class="form-group">
-<label for="MyAttributeExamplesModel_SmallInput">SmallInput</label>
-<input type="text" id="MyAttributeExamplesModel_SmallInput" name="MyAttributeExamplesModel.SmallInput" value="Small Input" class="form-control form-control-sm">
-<span class="text-danger field-validation-valid" data-valmsg-for="MyAttributeExamplesModel.SmallInput" data-valmsg-replace="true"></span>
+ <label for="MyAttributeExamplesModel_SmallInput">SmallInput</label>
+ <input type="text" id="MyAttributeExamplesModel_SmallInput" name="MyAttributeExamplesModel.SmallInput" value="Small Input" class="form-control form-control-sm">
+ <span class="text-danger field-validation-valid" data-valmsg-for="MyAttributeExamplesModel.SmallInput" data-valmsg-replace="true"></span>
</div>
<input name="__RequestVerificationToken" type="hidden" value="CfDJ8Kbwu8pRBWJCh6KUtTDoAuSUKLRRJ2JhujqxKEZfzYxIDYQtg1knqOh9zyG1DjaXRnoavm1876JtbePc4El_6aDqwMUKuXshQhXIunS_hrygXH5v-Tm6Qw_zL-JEJnSmd6Q4EwCtwDBwGX0in4-swG8">
</form>
diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/DynamicForms.cshtml.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/DynamicForms.cshtml.cs
index 6bfbfe2d0b..753a76d3be 100644
--- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/DynamicForms.cshtml.cs
+++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/DynamicForms.cshtml.cs
@@ -32,7 +32,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Pages.Components
{
MyDetailedModel = new DetailedModel
{
- Name = "John Surname",
+ Name = "",
Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
IsActive = true,
Age = 65,
@@ -46,12 +46,16 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Pages.Components
MyFormContentExampleModel = new FormContentExampleModel();
MyOrderExampleModel = new OrderExampleModel();
- MyAttributeExamplesModel = new AttributeExamplesModel();
- MyAttributeExamplesModel.DisabledInput = "Disabled Input";
- MyAttributeExamplesModel.ReadonlyInput = "Readonly Input";
- MyAttributeExamplesModel.ReadonlyPlainTextInput = "Readonly Plain Text Input";
- MyAttributeExamplesModel.LargeInput = "Large Input";
- MyAttributeExamplesModel.SmallInput = "Small Input";
+
+ MyAttributeExamplesModel = new AttributeExamplesModel
+ {
+ DisabledInput = "Disabled Input",
+ ReadonlyInput = "Readonly Input",
+ ReadonlyPlainTextInput = "Readonly Plain Text Input",
+ LargeInput = "Large Input",
+ SmallInput = "Small Input"
+ };
+
}
public class FormContentExampleModel
@@ -98,6 +102,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Pages.Components
public class DetailedModel
{
[Required]
+ [Placeholder("Enter your name...")]
[Display(Name = "Name")]
public string Name { get; set; }