본문 바로가기
ASP.NET Core

ASP.NET Core] Input Tag Helper

by Fastlane 2022. 1. 25.
728x90
반응형

attributes

  • asp-for
  • asp-format

asp-for

asp-for는 model property와 binding하여 input tag를 생성한다. 

public string Name { get; set; }
<input asp-for="Name" /><br />
<input type="text" id="Name" name="Name" value="" /><br />

model property의 data annotation attribute를 사용해서 매핑되는 input type을 자동 생성한다. 

[EmailAddress]
public string Email { get; set; }
<input asp-for="Email" /><br />
<input type="email" data-val="true" data-val-email="The Email field is not a valid e-mail address." id="Email" name="Email" value="" /><br />

 

Attribute  Input Type
[EmailAddress] type=”email”
[Url] type=”url”
[HiddenInput] type=”hidden”
[Phone] type=”tel”
[DataType(DataType.Password)] type=”password”
[DataType(DataType.Date)] type=”date”
[DataType(DataType.Time)] type=”time”

만약에, Data Annotation attribute가 없는 경우, property data type을 사용한다. 

NET type Input Type
Bool type=”checkbox”
String type=”text”
DateTime type=”datetime-local”
Byte, int, Single, Double type=”number”
decimal, double, float type=”text”

또한 data-val-* 로 시작하는 data validation related attribute를 자동 생성한다. 

[Required]
public string Name { get; set; }
<input asp-for="@Model.Name" />
<input type="text" data-val="true" data-val-required="The Name field is required." id="Name" name="Name" value="" />
[Required(ErrorMessage ="Please enter the name")]
public string Name { get; set; }
<input asp-for="Name" />
<input type="text" data-val="true" data-val-required="Please enter the name" id="Name" name="Name" value="" />

DateTime property는 [Required] attribute가 없어도 자동으로 data-val-required attribute가 생성된다. 

DateTime? property로 nullable처리하면 data-val-required가 생성되지 않는다. 

 

asp-format

string format이다. 

public decimal Balance { get; set; }
<input asp-for="Balance" asp-format="{0:N2}" />
<input type="text" data-val="true" data-val-number="The field Balance must be a number." data-val-required="The Balance field is required." id="Balance" name="Balance" value="0.00" />
728x90
반응형

댓글