.net core Razor 보기의 Tag Helper
Tag Helper
Tag Helpers는 Razor 파일에서 서버 코드를 사용하여 HTML 요소 작성 및 렌더링에 참여할 수 있습니다.Tag Helpers는 풍부한 스마트 감지 환경을 통해 HTML과 Razor 태그를 만들어 우리에게 우호적인 개발 체험을 제공하는 동시에 생성된 코드를 더욱 효율적이고 신뢰할 수 있으며 유지보수할 수 있도록 한다.Tag Helpers의 내용이 비교적 많으니 특별히 정리해 두세요...
Form Tag Helper
직접 예:
<form asp-controller="Demo" asp-action="Register" method="post">
form>
생성된 HTML:
<form method="post" action="/Demo/Register">
<input name="__RequestVerificationToken" type="hidden" value="" />
form>
MVC가 실행될 때 Form Tag Helper의 속성인 asp-controller와 asp-action에 따라 action의 속성 값이 생성됩니다.
이름 지정 라우팅 사용
asp-route를 통해 다음 폼에서 루트 규칙에서name이register인 루트를 사용할 수 있습니다.
<form asp-route="register" method="post">
form>
생성된 HTML:
<form asp-controller="Account" asp-action="Login"
method="post" class="form-horizontal" role="form">
form>
Input Tag Helper
역할:
4
4
4
4
위 두 번째 조항에서 TagHelper 기반NET 유형 및 특성을 사용하여 HTML type 속성을 설정합니다.다음은 흔히 볼 수 있는 것이다.NET 유형 및 특성으로 생성된 HTML 유형:
.Net 유형 생성된 HTML 유형:
.Net 유형
Input 유형
Bool
type=”checkbox”
String
type=”text”
DateTime
type=”datetime”
Byte
type=”number”
Int
type=”number”
Single, Double
type=”number”
.Net 특성으로 생성된 HTML 유형:
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”
밤을 들다.
public class RegisterViewModel
{
[Required]
[EmailAddress]
[Display(Name = "Email Address")]
public string Email { get; set; }
[Required]
[DataType(DataType.Password)]
public string Password { get; set; }
}
@model RegisterViewModel
<form asp-controller="Demo" asp-action="RegisterInput" method="post">
Email: <input asp-for="Email" /> <br />
Password: <input asp-for="Password" /><br />
<button type="submit">Registerbutton>
form>
위 코드는 다음과 같은 HTML을 생성합니다.
<form method="post" action="/Demo/RegisterInput">
Email:
<input type="email" data-val="true"
data-val-email="The Email Address field is not a valid e-mail address."
data-val-required="The Email Address field is required."
id="Email" name="Email" value="" /> <br>
Password:
<input type="password" data-val="true"
data-val-required="The Password field is required."
id="Password" name="Password" /><br>
<button type="submit">Registerbutton>
<input name="__RequestVerificationToken" type="hidden" value="" />
form>
asp-for 속성 값은 ModelExpression이자 lambda 표현식 오른쪽의 부분입니다.따라서 모델 접두어를 사용할 필요가 없습니다.
하위 속성 찾기
asp-for는 보기 모델의 속성 경로를 통해 하위 속성에 위치할 수 있습니다.
클래스 코드:
// A
public class AddressViewModel
{
public string AddressLine { get; set; }
}
// B A
public class RegisterAddressViewModel
{
public string Email { get; set; }
[DataType(DataType.Password)]
public string Password { get; set; }
public AddressViewModel Address { get; set; }
}
보기 코드:
@model RegisterAddressViewModel
<form asp-controller="Demo" asp-action="RegisterAddress" method="post">
Email: <input asp-for="Email" /> <br />
Password: <input asp-for="Password" /><br />
Address: <input asp-for="Address.AddressLine" /><br />
<button type="submit">Registerbutton>
form>
asp-for는 모델 접두사가 필요하지 않기 때문에 모델의 이메일 등 속성과 직접 연결할 수 있습니다.
하위 속성 AddressLine의 경우 Address를 사용할 수 있습니다.AddressLine을 사용하여 바인딩합니다.
Tag Helper 검증
<span asp-validation-for="Email"></span>
<span class="field-validation-valid"
data-valmsg-for="Email"
data-valmsg-replace="true">
</span>
일반적으로 모델 속성이 동일한 Input Tag Helper 뒤에 Validation Message Tag Helper가 사용됩니다.이렇게 하면 검증 오류가 발생한 input 옆에 오류 정보를 표시할 수 있습니다.
HTML Helper 대체 옵션:Html.ValidationMessageFor()
Select Tag Helper
Select Tag Helper의 asp-for는 select 요소에 모델의 속성 이름을 지정하고 asp-items는 option 요소를 지정합니다.
클래스 코드:
public class CountryViewModel
{
public string Country { get; set; }
public List Countries { get; } = new List
{
new SelectListItem { Value = "MX", Text = "Mexico" },
new SelectListItem { Value = "CA", Text = "Canada" },
new SelectListItem { Value = "US", Text = "USA" },
};
}
public IActionResult Index()
{
var model = new CountryViewModel();
model.Country = "CA";
return View(model);
}
index 보기:
@model CountryViewModel
<form asp-controller="Home" asp-action="Index" method="post">
<select asp-for="Country" asp-items="Model.Countries">select>
<br /><button type="submit">Registerbutton>
form>
Html 생성:
위의 asp-for에서 지정한 모델 유형은 단일 값 유형이지만 지정한 모델이 IEnumerable 형식으로 바뀌면 Select Tag Helper는 HTML에서 자동으로 multiple = "multiple"을 생성합니다.
주의: asp-for가 특례라면 모델 접두사가 필요하지 않습니다.
옵션 그룹
옵션을 그룹화하면 HTML
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
반사를 이용하여 하나의 클래스에서 속성의 대량 할당 조작을 완성하다메서드 1, 객체 등록 정보가 순차적으로 지정되고 객체 멤버가 변경되면 메서드를 수정합니다. 방법2, 반사를 이용하여 대량으로 값을 부여한다. 객체:/// /// 按钮状态 /// public class ButtonS...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.