Microsoft는 WebMatrix 제품 (http://en.wikipedia.org/wiki/Microsoft_WebMatrix)에서 인라인 코딩을 위해 개발 한 Razor 구문을 좋아합니다.ASP.NET Webforms (* .aspx 페이지)에서 Razor 구문을 사용할 수 있습니까?
이제 Visual Studio SP1에 RTM이 설치되었으므로 ASP.NET Webforms에서 Razor 구문을 사용할 수 있습니까?
감사합니다.
Microsoft는 WebMatrix 제품 (http://en.wikipedia.org/wiki/Microsoft_WebMatrix)에서 인라인 코딩을 위해 개발 한 Razor 구문을 좋아합니다.ASP.NET Webforms (* .aspx 페이지)에서 Razor 구문을 사용할 수 있습니까?
이제 Visual Studio SP1에 RTM이 설치되었으므로 ASP.NET Webforms에서 Razor 구문을 사용할 수 있습니까?
감사합니다.
우리 (ASP.NET 팀)는 현재 Razor 구문을 사용하여 WebForms 페이지 모델을 지원할 계획이 없습니다. 또한 모델이 너무 다르기 때문에 심각하게 고려하지 않을 것입니다.
Codeplex에서 제공되는 RazorEngine을 사용하여 통합 할 수 있습니다. MVC 외부에서 면도기를 처리 할 수 있습니다. Razor의 MVC 버전에서 얻는 모든 기능 (예 : @Html
및 @Url
등)을 얻지는 못했지만
안녕하세요. :) 그냥 mvc 밖에서 면도기를 사용하는 방법을 묻는 느낌 -하지만 당신의 대답은 더 의미가 있습니다. – Buildstarted
MVC가없는 면도기 페이지를 사용할 수 있습니다. 이것은 ASP.Net WebPages라고합니다.
.CSHTML 파일을 일반 ASP.Net 4.0 프로젝트에 추가하기 만하면됩니다.
내 블로그에 explained how this works
나는 마이크로 소프트가 그것을 고려했다고 말하고 싶지만 주제에 대한 공식적인 단어는 없다. ASPX 파일에 C# 또는 VB 코드가 있어야하는 것은 아니기 때문에 Web Forms에 Razor 지원을 추가해야 할 필요가 있습니다. 코드 숨김은 여전히 (부분) 클래스 파일입니다. Razor를 Web Pages 또는 MVC의 클래스 파일에 넣는 것보다 더 이상 넣지 않을 것입니다. 서버 컨트롤과 Html Helpers에 대한 훌륭한 선언적 요소를 서로 바꿔 놓으면 Web Forms 경로 인 IMO를 사용하는 주요 이유 중 하나가 제거됩니다.
<% = SomeControl.ClientID %> 대신 @ @ SomeControl.ClientID는 웹 폼 내부에 면도기를 넣을 좋은 이유 인 것 같습니다. – Arshia001
정말 그렇게하기가 어렵지 않습니다. 지금 당장 일해라. CodePlex에서 RazorEngine을 가져옵니다. 런타임시 Razor cshtml/vbhtml 파일을 클래스로 컴파일 할 수 있습니다.
그런 다음 해당 클래스를 가져 와서 Render 메서드 내에서 ASP.Net 서버 컨트롤에서 사용할 수 있습니다. 이것은 서버 컨트롤의 본문에서 HTML을 가져 오는 좋은 방법입니다. 훨씬 더 청결한.
이제 Razor에서 호출 할 수있는 몇 가지 메소드를 추가 할 수 있습니다. 예를 들어, RenderChild와 같은 것을 추가하십시오. 또한 Server Control 자체를 Razor에서 사용 가능한 모델로 설정할 수 있습니다. 그런 다음 서버 컨트롤을 호출 할 수 있습니다. 그 중 하나를 잡는 것과 같은 일을하는 것을 포함하여 자식 컨트롤과 Render를 호출합니다.
그래서 ** 이것은 ** 웹 양식 기반 응용 프로그램에서도 .cshtml/.vbhtml 파일을 사용할 수 있음을 의미합니다. 계속 지켜봐 주시기 바랍니다. ** http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx#7553469? – Programista
아직 그러한 계획이 없습니다. 전형적인 WebForms 애플리케이션을 가지고 Razor 파일을 추가 할 수는 있지만' '와 같은 컨트롤을 가질 수는 없습니다. –
marcind