The TextBox TagHelper does not render the maxlength and placeholder attributes when set via data annotations.
For a model property defined the following way
[Display(Name = "Example", Prompt = "Example Prompt")]
[StringLength(maximumLength : 5, MinimumLength = 1, ErrorMessage = "Must be between 1 and 5")]
public string Example { get ; set ; }
the TextBox TagHelper generetes
<input
class="form-control k-input-inner"
data-val="true"
data-val-length="Must be between 1 and 5"
data-val-length-max="5"
data-val-length-min="1"
id="Example"
name="Example"
value=""
data-role="textbox"
style="width: 100%;"
aria-disabled="false"
autocomplete="off"
aria-invalid="true"
aria-describedby="Example_validationMessage">
when the default ASP.NET Core TagHelper generates markup containing the maxlength and placeholder attributes:
<input
class="form-control k-invalid"
type="text"
data-val="true"
data-val-length="Must be between 1 and 5"
data-val-length-max="5"
data-val-length-min="1"
id="Example"
maxlength="5"
name="Example"
placeholder="Example Prompt"
value=""
aria-invalid="true"
aria-describedby="Example_validationMessage">
The maxlength and placeholder attributes are set to the generated input element.