저는이 질문을 대답없이 거의 1 년 동안 열어 두었습니다. 그래서 나는 결국 내가 생각한 것을 올리기로 결정했습니다.
면도기가 아직 문서화되지 않은 것은 분명합니다. http://msdn.microsoft.com/en-us/library/system.web.razor%28v=vs.111%29.aspx을 참조하십시오. 문서화되지 않은 상태로 남을 가능성이 매우 높습니다.
그러나 사용 방법은 ASP.NET MVC에서 Razor보기 엔진에서 사용하는 코드를 보면 쉽게 확인할 수 있습니다. 그런 다음이를 기반으로 코드를 작성할 수 있습니다.
Razor도 ASP.NET BuildManager
인프라와 연결되어있어이를 통해 쉽게 Razor보기의 인스턴스를 얻을 수 있습니다. 그런 다음 ExecutePageHierarchy
메서드를 호출하려고합니다. 이것은 내가 본 것 중 가장 무책임한 결정 중 하나가 될 가지고있다
public void ProcessRequestCore(HttpContextBase context)
{
try
{
// Create Razor page instance
var instance = BuildManager.CreateInstanceFromVirtualPath(_razorFilePath, typeof(WebPage)) as WebPage;
if (instance == null)
throw new NullReferenceException("BuildManager.CreateInstanceFromVirtualPath returned null.");
// Set up things
instance.VirtualPath = _virtualPath;
// Render the Razor page
instance.ExecutePageHierarchy(new WebPageContext(context, instance, _model), context.Response.Output);
}
catch (Exception exc)
{
Logger.WriteException(exc);
context.Response.StatusCode = 500;
}
}
1 : 여기
는 코드입니다. 필자는 항상 책임있는 프레임 워크 개발자가 배포 전에 필수 * 유용한 API 문서를 중요한 요구 사항으로 간주하기를 희망했습니다. "* herp derp **로 직접 오염되지 않도록 ** ** herp derp *"로 오염 된 MSDN 페이지는 단지 모욕적 인 페이지입니다. – Dan@Bracketworks 네, 전적으로 동의합니다 !!! – Venemo