퇴근5분전

 

오늘 PLC 모니터링 기능을 추가하면서 웹 테스트를 하는데... 

이상한 현상이???

 

.razor 안에서 ... 

@code{
	MonitoringInfo info = null;
}


@foreach( var brd in bridges ) {
    info = Service.GetMonitoringInfo( brd );
	
    <div ... >
    	<button @onclick=( e => EditDangerConfirm( info.ID, info.DangerValue) ) >
    </div>
    
}

 

이런 식으로 썼는데 bridges를 순회하면서 html코드를 생성하고 

@onclick 이벤트에 연결 했는데... 

 

화면에서 테스트를 해보니... 무조건 마지막에 연결되었던 객체 정보로 뜬다. 

원인 ::

@onclick이 발생하는 때에는 데이타가 계속 덮어씌여져서 가장 마지막 요소를 가지고 오픈하니까 ... 엉뚱한게 보여진다. 

구글링을 해보니... 저렇게 쓰면 안된단다.. 생각해보니.. 그게 맞는 것도 같고..

 

해결방법 :: 

@foreach( var brd in bridges ) {
    MonitoringInfo info = Service.GetMonitoringInfo( brd );
	
    <div ... >
    	<button @onclick=( e => EditDangerConfirm( info.ID, info.DangerValue) ) >
    </div>
    
}

 

독립변수가 되겠끔. 

   MonitoringInfo info ; 선언을 foreach 안쪽으로 내렸다.

이렇게 하면 @onclick되는 시점에 바인딩될때의 변수값들을 가지고 컨펌창이 뜬다.

 

 

 

 

'# 4) .Net ( Vs 2010 ) > Web Matrix _Razor' 카테고리의 다른 글

Web Matrix] 구조화 컨텐츠... Layout  (0) 2011.04.20
Web Metrix ] 첫만남?  (0) 2011.04.19




레이아웃 이용하는 방법을 확인하였다.

_파일명.cshtml   _ 는 참조페이지라는 의미란다. 직접 호출할수 없다고 한다.( 해볼까낭? )

@RenderPage( "_호출페이지")  현재 페이지 호출페이지를 Include 한다. 

위 결과물은 다음과 같다.

 화살표는 읽히는 방향으로 그려두었다. 자세한건 pdf 참조.
 실행페이지는 Content.cshtml 이다.




 오... 지난번 동영상을 훈스 강좌란에서 본 이후 해봐야지 했던건데..

디게 신기하넹...

코드치는게 좀 손에 안익어서 더디지만... 처음 다뤄본 느낌으론 재미있다!?

Sqler의 Konan 김대우님 ( http://www.Sqler.com ); 에서 배포한 한들 eBook을 보고 해보는 중임.

전체코드는 위 사이트에서 무료로 배포된 pdf를 보고...

@* 주석  *@
@{    }   코드블럭
@변수 또는 객체        
   : 지원되는 객체에 대해서는 잘 모르겠넹... StopWatch를 걸어봤는데.. 제공된 컨텐츠는 아니라고 안됨. 
   : string.Format() 이 되는거보면... .net 객체들이 지원이 되는것 같은데... 차츰 알아보자.

-- 샘플... 

     @{   //코드블럭임 
            //주석 방법 1
            var k = "코드블럭K";
        }                                                                                               
        @*  주석2 이라는데 ... *@
        @k<br/>
                
        Hello World          @string.Format("뷁{0}", " 이건뭐? 레이져! ")                               
                                                    @*  .Net객체를 활용할 수 있는듯 함. *@ 
        @ServerInfo.GetHtml()               @*  서버 정보가 나타남. *@
       

 -- 샘플2
 Post라는데...

@{
        var total = 0;
       
        if( IsPost )  
// IsPost  ... 포스트백 체크 인가보다.
        {
            var num1 = Request["text1"];           
// post로 넘겨받은 form 내 text1, text2 를 똑같이 얻어올 수 있네
            var num2 = Request["text2"];
           
            total = num1.AsInt() + num2.AsInt();   
// AsInt() 로 숫자로 변환하는 부분임.
        }
    }

    </head>
    <body>
        <p>두개의 숫자를 넣고 "더하기" 버튼을 클릭하세요~</p> <p></p> <form action="" method="post"> <p> <label for="text1">숫자(1):</label> <input type="text" name="text1" /> </p> <p> <label for="text2">숫자(2):</label> <input type="text" name="text2" /> </p>
        <p> <input type="submit" value="더하기" /> </p>
</form>
 
<h2>두 숫자의 합은: @total 입니다.</h2>
    </body>



왠지 재미있다...

동영상에서 보던것대로 간단하네... 구현도 편하고...?

다만 지금 웹 구현 방법이나 코딩 기준들이 쉽게 바뀌지 않을텐데...

적용하려면? 또는 그에 맞는 개발방법론이 따로 나오려나??? 음...

빙산에 일각만 보고 추측하기 어려우니 쭉~~ 가봐야징.