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
Posted by kjun.kr
,