2011-03-10 3 views

답변

44

우리 (ASP.NET 팀)는 현재 Razor 구문을 사용하여 WebForms 페이지 모델을 지원할 계획이 없습니다. 또한 모델이 너무 다르기 때문에 심각하게 고려하지 않을 것입니다.

+0

그래서 ** 이것은 ** 웹 양식 기반 응용 프로그램에서도 .cshtml/.vbhtml 파일을 사용할 수 있음을 의미합니다. 계속 지켜봐 주시기 바랍니다. ** http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx#7553469? – Programista

+0

아직 그러한 계획이 없습니다. 전형적인 WebForms 애플리케이션을 가지고 Razor 파일을 추가 할 수는 있지만''와 같은 컨트롤을 가질 수는 없습니다. – marcind

4

Codeplex에서 제공되는 RazorEngine을 사용하여 통합 할 수 있습니다. MVC 외부에서 면도기를 처리 할 수 ​​있습니다. Razor의 MVC 버전에서 얻는 모든 기능 (예 : @Html@Url 등)을 얻지는 못했지만

+0

안녕하세요. :) 그냥 mvc 밖에서 면도기를 사용하는 방법을 묻는 느낌 -하지만 당신의 대답은 더 의미가 있습니다. – Buildstarted

27

MVC가없는 면도기 페이지를 사용할 수 있습니다. 이것은 ASP.Net WebPages라고합니다.

.CSHTML 파일을 일반 ASP.Net 4.0 프로젝트에 추가하기 만하면됩니다.

내 블로그에 explained how this works

+1

물론, .CSHTML 또는 .VBHTML 파일을 만들 수 있지만, 문제는 Razor 구문을 * .ASPX 페이지에서 사용할 수 있는지 (또는 사용할 수 있는지) 여부입니다. – cpuguru

+0

@cpuguru : 물론 아닙니다. 그건 아무 의미가 없어요. 일반적으로 두 개의 경쟁 언어를 하나의 파일로 사용할 수 없습니다. – SLaks

+2

면도기는 구문 (언어가 아님)이라고 생각 했습니까? – cpuguru

1

나는 마이크로 소프트가 그것을 고려했다고 말하고 싶지만 주제에 대한 공식적인 단어는 없다. ASPX 파일에 C# 또는 VB 코드가 있어야하는 것은 아니기 때문에 Web Forms에 Razor 지원을 추가해야 할 필요가 있습니다. 코드 숨김은 여전히 ​​(부분) 클래스 파일입니다. Razor를 Web Pages 또는 MVC의 클래스 파일에 넣는 것보다 더 이상 넣지 않을 것입니다. 서버 컨트롤과 Html Helpers에 대한 훌륭한 선언적 요소를 서로 바꿔 놓으면 Web Forms 경로 인 IMO를 사용하는 주요 이유 중 하나가 제거됩니다.

+1

<% = SomeControl.ClientID %> 대신 @ @ SomeControl.ClientID는 웹 폼 내부에 면도기를 넣을 좋은 이유 인 것 같습니다. – Arshia001

1

정말 그렇게하기가 어렵지 않습니다. 지금 당장 일해라. CodePlex에서 RazorEngine을 가져옵니다. 런타임시 Razor cshtml/vbhtml 파일을 클래스로 컴파일 할 수 있습니다.

그런 다음 해당 클래스를 가져 와서 Render 메서드 내에서 ASP.Net 서버 컨트롤에서 사용할 수 있습니다. 이것은 서버 컨트롤의 본문에서 HTML을 가져 오는 좋은 방법입니다. 훨씬 더 청결한.

이제 Razor에서 호출 할 수있는 몇 가지 메소드를 추가 할 수 있습니다. 예를 들어, RenderChild와 같은 것을 추가하십시오. 또한 Server Control 자체를 Razor에서 사용 가능한 모델로 설정할 수 있습니다. 그런 다음 서버 컨트롤을 호출 할 수 있습니다. 그 중 하나를 잡는 것과 같은 일을하는 것을 포함하여 자식 컨트롤과 Render를 호출합니다.

관련 문제