WebPage
次のようにインスタンスを動的に作成して、ASP.NETWebページを使用してカスタムルートを作成することを計画しています。
IHttpHandler handler = System.Web.WebPages.WebPageHttpHandler.CreateFromVirtualPath("~/Default.cshtml");
WebPage
Webページの「モデル」になるように、基になるオブジェクトにオブジェクトを提供するにはどうすればよいですか?@Model.Firstname
つまり、ファイルに書き込めるようにしたいと思いますDefault.cshtml
。
どんな助けでも大歓迎です。
アップデート
@Pranavで回答を変更することで、WebPage
リフレクションを使用して基になるオブジェクトを取得できました。
public void ProcessRequest(HttpContext context)
{
//var page = (WebPage) System.Web.WebPages.WebPageHttpHandler.CreateFromVirtualPath(this.virtualPath);
var handler = System.Web.WebPages.WebPageHttpHandler.CreateFromVirtualPath(this.virtualPath);
var field = handler.GetType().GetField("_webPage", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
var page = field.GetValue(handler) as System.Web.WebPages.WebPage;
var contextWrapper = new HttpContextWrapper(context);
var pageContext = new WebPageContext(contextWrapper, page, context.Items[CURRENT_NODE]);
page.ExecutePageHierarchy(pageContext, contextWrapper.Response.Output);
}
残念ながら、これは中程度の信頼では機能しないため、信頼できません(アプリケーションが完全な信頼で実行されていない場合、BindingFlags.NonPublicは無視されます)。そのため、私たちは大きな進歩を遂げましたが、ソリューションはまだ完成していません。
任意の提案をいただければ幸いです。