728x90
경로의 형식 일치가 되도록 제약을 둘수 있습니다.
아래처럼 정의하게되면 숫자인 경우만 페이지가 정상적으로 표시됩니다.
@page "/user/{Id:int}"
<h1>UserID is @Id</h1>
@code {
[Parameter]
public int Id { get; set; }
}
https://localhost:7132/user/1010
하지만 문자가 오게된 경우 아래처럼 페이지가 제대로 표시되지 않습니다.
https://localhost:7132/user/test
제약조건은 아래와 같이 줄수 있습니다.
bool | {active:bool} | true, FALSE | 아니요 |
datetime | {dob:datetime} | 2016-12-31, 2016-12-31 7:32pm | 예 |
decimal | {price:decimal} | 49.99, -1,000.01 | 예 |
double | {weight:double} | 1.234, -1,001.01e8 | 예 |
float | {weight:float} | 1.234, -1,001.01e8 | 예 |
guid | {id:guid} | CD2C1638-1638-72D5-1638-DEADBEEF1638, {CD2C1638-1638-72D5-1638-DEADBEEF1638} | 아니요 |
int | {id:int} | 123456789, -123456789 | 예 |
long | {ticks:long} | 123456789, -123456789 | 예 |
아래와 같이 제약을 두면
@page "/user/{Id:int}/{Option:bool?}"
<h1>UserID is @Id</h1>
<p>
Option: @Option
</p>
@code {
[Parameter]
public int Id { get; set; }
[Parameter]
public bool Option { get; set; }
}
아래처럼 주소에 숫자와 bool 값으로 주소가 만들어져야 페이지가 제대로 표시됩니다.
https://localhost:7132/user/1010/true
728x90
'C# > Blazor' 카테고리의 다른 글
[Blazor] ComponentBase 사용하기 - inherits (0) | 2022.12.26 |
---|---|
[Blazor] Parameter 필수 처리하기 - EditorRequired (0) | 2022.12.26 |
[Blazor] Route parameters (경로 매개 변수) (0) | 2022.12.23 |
[Blazor] ShouldRender - 불필요한 렌더링 방지 (0) | 2022.12.19 |
[Blazor] IDisposable 처리하기 (0) | 2022.12.19 |