sourcetip

ASP의 이유NET 웹 양식에는 Runat=가 필요합니다."서버" 속성?

fileupload 2023. 4. 23. 11:03
반응형

ASP의 이유NET 웹 양식에는 Runat=가 필요합니다."서버" 속성?

명기해야 요?runat="server"ASP를 사용하다는, 이 필수 이며, NET 는 필수 어트리뷰트인 합니다.serverASP에 대한 저의 제한된 지식으로는 이 옵션밖에 없습니다.NET net net net net net net net net net net net net?

HTML 태그에서 임의로 사용할 수 있으며 클라이언트/서버 패러다임과 실제로 무엇을 지정하는지 이해하고 있습니다.

컨트롤이 ASP임을 암시할 수 있는 중복 태그입니까?NET 제어, 또는 근본적인 이유가 있습니까?

ASP를 혼재시킬 수 있다는 것을 이해하려면 더 많은 것이 필요하다고 항상 믿어 왔습니다. 및 태그 및 에는 NET 태그, HTML 태그 중 .runat="server"그렇지 않으면.태그를 삽입해도 전혀 문제가 없고 컴파일러에서 태그를 꺼내는 데 오류가 발생합니다.웹 언어에 대해 더 많은 것을 암시할수록, 새로운 프로그래머가 와서 그것을 배우는 것은 쉽지 않습니다.그것은 태그 속성에 대해 장황하게 말할 수 있는 좋은 이유입니다.

이 대화는 Mike Schinkel의 블로그에서 자신과 Microsoft National Services의 Talbot Crowell 사이에 이루어졌습니다.관련 정보는 다음과 같습니다(출처에서의 문법적 오류로 인해 첫 번째 단락을 바꿔 표현).

[...] 하지만 중요한 것은<runat="server">이치노

개발자가 일부 태그(viz)를 표시해야 하는 경우. <asp: />무시해야 할 NET Engine은 태그 간의 네임스페이스 충돌 및 향후 개선 사항의 잠재적 문제도 있습니다.「 」를 합니다.<runat="server">아트리뷰트, 아트리뷰트, 아트리뷰트.

계속됩니다.

if<runat=client> 측는 모든 하고 """를 .<runat=client>syslog.syslog.

그는 계속한다:

제 는 '태그' 또는 '태그 이라는 한 태그 없음)를합니다.runat=server 또는 the attribute"를 지정합니다.<% 또는 는 ssi입니다<!– #include(...) ASP 이후부터.NET은 웹 디자이너(foo.aspx)와 웹 개발자(foo.aspx.vb)를 분리할 수 있도록 설계되어 있으며 웹 디자이너는 자체 웹 디자이너 도구를 사용하여 ASP에 대해 알 필요 없이 HTML 및 클라이언트 측 JavaScript를 배치할 수 있습니다.NET 고유의 태그 또는 속성.

난 보통 추측하는 걸 좋아하지 않지만, 이번 건은...

Microsoft 의 를 기억하고 있는 경우는,과거(2001년?)에, NET 마케팅의 선전에서는, 무엇을 말할 수 없었습니다.NET도 마찬가지였습니다.서버였나요? 프로그래밍 플랫폼이었나요? 언어였나요?완전히 새로운 거라도?광고를 봤을 때, 그것은 당신이 원하는 어떤 것이든 모호했다. 그것은 당신이 가지고 있을 수 있는 모든 문제를 해결했다.

ASP에 숨겨진 웅장한 비전이 있었던 것 같습니다.NET 코드는 서버 측 또는 클라이언트 측, 에 연결된 Internet Explorer 복사본의 어디에서나 실행할 수 있습니다.NET 런타임runat="server"는 클라이언트 측에서 실전 가동되지 않았기 때문에 남겨진 잔해에 불과합니다.

그 이상한 광고 기억나?

관련:에 기재되어 있는 기사.NET 이력

페이지에 포함할 수 있는 모든 컨트롤이 서버에서 실행되어야 하는 것은 아닙니다.예를 들어 다음과 같습니다.

<INPUT type="submit" runat=server />

이는 기본적으로 다음과 같습니다.

<asp:Button runat=server />

첫 번째 태그에서 runat=server 태그를 제거하면 브라우저에서 표준 HTML 버튼이 실행됩니다.서버에서 특정 컨트롤을 실행하는 데는 이유가 있으며 ASP에는 방법이 없습니다.NET에서는, HTML 마크업에 근거해 필요한 것을 「가정」할 수 있습니다. runat=server for the runat=server for the runat=server for the runat=surver "suver"는 수 .<asp:XXX />MS가 마크업 구문과 ASP를 해킹했다고 생각할 것 같습니다.NET 진 net

Microsoft Msdn 기사 잊혀진 컨트롤: HTML 서버 컨트롤은 runat="server"의 사용에 대해 텍스트 상자에 예시와 함께 설명합니다.<input type="text">을 '''로 변환하여''로 변환하여<input type="text" id="Textbox1" runat="server">

이렇게 하면 웹 페이지가 생성되어 클라이언트에 전송되기 전에 서버의 HTML 요소에 프로그래밍 방식으로 액세스할 수 있습니다.HTML 요소에는 id 속성이 포함되어 있어야 합니다.이 속성은 요소의 ID로 기능하며 요소의 특정 ID에 따라 요소에 프로그래밍할 수 있습니다.HTML 요소에는 이 특성 외에도 runat="server"가 포함되어야 합니다.이것은 태그가 서버에서 처리되므로 기존의 HTML 요소로 간주되지 않음을 프로세싱 서버에 알립니다.

, 「」를 추가합니다.HTML은 「」를 추가합니다.runat="server"그렇게.

처리 중에 서버 측 제어가 어떻게 식별되는지와 관련이 있는 것 같습니다.서버측 처리를 실행할 필요가 있는지 여부를 결정하기 위해 런타임에 모든 컨트롤을 이름으로 확인할 필요가 없는 대신 태그에 의한 내부 노드 표현을 선택합니다.컴파일러는 검증 단계에서 서버 태그가 필요한 모든 컨트롤에 태그가 있는지 확인합니다.

ASP' HTML "" 파일은 NET 파일은 기본적으로 텍스트로 처리됩니다. 요소를 가능하게 , 「」를 합니다.runat="server"HTML 소 html html html html html 。이 속성은 요소가 서버 컨트롤로 처리되어야 함을 나타냅니다.

ASP의 모든 컨트롤이 있기 때문에 여기에 있습니다.시스템에서 NET 상속."runat" 속성을 가진 Web.UI.Control.

시스템 클래스입니다.Web.UI.HTMLCOontrol. 단, 클래스 시스템에서는 속성이 필요하지 않습니다.Web.UI.WebControl 속성이 필요합니다.

edit: 좀 더 구체적으로 설명하겠습니다.asp.net은 HTML의 추상적인 개념이기 때문에 컴파일러는 특정 태그가 서버 측에서 실행되어야 한다는 것을 알 수 있도록 일종의 지시가 필요합니다.그 속성이 존재하지 않으면 서버에서 먼저 처리할 수 없게 됩니다.아트리뷰트가 존재하지 않으면 정기적인 마크업으로 간주하여 클라이언트에 전달합니다.

Microsoft는 페이지가 컴파일되기 전에 컴파일러가 runat 속성을 추가하도록 함으로써 이 애매함을 해결할 수 있다고 생각합니다.이것은 Java가 제네릭스에 가지고 있는 타입 삭제와 같은 것으로, 태그의 asp: prefix를 보는 곳마다 runat=server 라고 하는 것이므로 개발자는 걱정할 필요가 없습니다.

일반 html 태그에서 사용하면 이벤트 핸들러 등에서 프로그램적으로 조작할 수 있습니다.예를 들어 페이지 로드 시 앵커 태그의 href 또는 클래스를 변경할 수 있습니다.바닐라 html 태그가 더 빠르기 때문에 꼭 해야 할 때만 가능합니다.

사용자 제어 및 서버 제어에 관한 한, aspx 프리프로세서의 내부를 조사하지 않으면 이들 없이 동작하지 않을 뿐이며, 정확한 이유는 말할 수 없지만, 아마도 타당한 이유로 그들은 "do something"이라고 명시적으로 표시된 것들을 찾기 위해 파서를 작성했을 것이라고 추측할 수 있습니다.

만약 @JonSkeeet이 근처에 있다면, 그는 훨씬 더 나은 대답을 할 수 있을 것입니다.

ASP에 데이터를 송신할 때.NET 웹 서버는 서버 애플리케이션에서 Runat = "server"로 언급된 컨트롤이 Dot Net 개체로 표시됩니다.HTML 컨트롤에 코드를 수동으로 입력하거나 설계 보기에서 마우스 오른쪽 단추를 눌러 서버로 실행 옵션을 사용할 수 있습니다.ASP.NET 컨트롤은 보통 HTML 컨트롤이 아닌 도구 상자에서 끌면 자동으로 이 속성을 가져옵니다.

"asp" 태그는 분명히 ASP 요소이며 서버 측에서 접근 가능한 요소로 식별하기에 충분합니다.

그러나 다른 곳에서는 코드 뒤에 사용되는 일반 태그를 상승시키는 데 사용되었습니다.

시행착오를 거쳐 이 결론에 도달했습니다. 서버 측에서 런타임에 요소에 액세스하려면 runat="server"가 필요합니다.그것들을 제거하고 다시 컴파일하여 무슨 일이 일어나는지 지켜보세요.

runat=server가 있는 태그는 Page에서 서버 컨트롤로 추가되며, 사이의 모든 html 콘텐츠는 LiteralControls로 처리되며 Page 컨트롤 컬렉션에도 추가됩니다.

runat="Server"는 HTML 에.

에서는, 「」를 사용합니다.postback페이지 제어 이벤트를 처리하도록 서버에 지속적으로 신호를 보냅니다.

.NET MVC Use " " " pages pages pages "postback(형식 제외)"submit"MVCJQUERY하다(postback★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

: ★★★★★★★★★★★★★★:.NET사용하다"runat"페이지 마크업에서 많은 것을 볼 수 있습니다.

.NET MVC 않다"runat"속성을 지정합니다.

왜 그런지 좀 더 알 수 있었으면 좋겠습니다.runat★★★★★★★★★★★…

언급URL : https://stackoverflow.com/questions/304290/why-does-asp-net-webforms-need-the-runat-server-attribute

반응형