안녕하세요. 박용준 강사입니다.
우선, 아래 요청 주신 부분만 봐서는 정확히 알수는 없지만,
IsShow 속성에 따라서 모달 팝업이 띄우거나 닫거나 하는 것 같습니다.
(1)
처음 로드할 때 IsShow 속성을 false로 초기화해 놓는 부분을 추가해 보시면 어떨까합니다.
또한,
model = new LSDetail(); // 모델 초기화
부분을
버튼 클릭할 때 하는게 아닌 OnInitialize() 메서드에서 주는 것도 좋을 듯 합니다.
(2)
그리고, 블레이저 파트 2 강좌인 게시판 프로젝트 강좌에서도
모두 데이터 입력하는 부분은 모달 팝업으로도 제공하고 있으니까, 현재 작성하신 부분과
제 강의 소스(특히, ReplyApp)를 비교해보시면 좋을 것 같습니다.
(3)
추가적으로,
다음 샘플 코드에서도
Portfolio selectedPortfolio = new Portfolio(); 부분이 선언과 동시에 초기화하지 않으면, 두번 클릭해야 모달 폼이 뜨는 경우입니다.
https://github.com/VisualAcademy/RedPlus.RazorPages/blob/main/RedPlus/Components/PortfolioList.razor
어쨌든,
두 번 클릭했을 때 데이터를 정상적으로 가져온다면,
첫 번째 클릭할 때 개체가 생성되고 그 다음에 그 개체가 생성되었기에 팝업이 뜨는 듯 합니다.
이 부분을 한 번 생각해보시고,
현재 작업하고 계시는 부분의 소스를 검토해 보시면 좋습니다.
이상입니다.
On 2021-02-08 오후 1:57:00, '조재문' wrote:
안녕하세요?
데브렉에서 강의 잘 보고 있습니다.
블레이즈 3 강의를 보고 웹페이지를 응용하여 작 적용 하고 있습니다.
블레이즈에서 추가 버튼을 클릭하면 잘 실행 되는데
레파지토리와 연결되면 클릭이 반응이 없고 한번더 클릭하면 실행됩니다.
소스는
<input type="button" name="btnCreate" value="추가"
class="btn btn-primary"
@onclick="ShowEditorForm" />
protected async void ShowEditorForm()
{
string year = DateTime.Now.Year.ToString();
gameList = await LSDetailRepositoryReference.GetAllGameNameAsync(year); // 종목명
model = new LSDetail(); // 모델 초기화
EditorFormTitle = "세부종목 추가하기";
IsShow = true;
}
이 현상을 어떻게 하면 해결할 수 있는지 궁금합니다.