代码之家  ›  专栏  ›  技术社区  ›  masoud ramezani

是否可能:在ASP.NET运行时呈现服务器标记?

  •  3
  • masoud ramezani  · 技术社区  · 15 年前

    我是否可能在数据库中保留一个ASP.NET代码并在运行时加载它?ASP.NET代码包含服务器端标记,如 Text='<%# Eval("Description") %>'

    1 回复  |  直到 15 年前
        1
  •  3
  •   Nick Craver    15 年前

    您可以写入ASPX,插入所需内容,然后使用以下方法生成页面:

    BuildManager.CreateInstanceFromVirtualPath("~/MyPage.aspx",typeof(Page));
    

    当你得到你的httphandler时,你需要包装它:

    var p = BuildManager.CreateInstanceFromVirtualPath("~/MyPage.aspx",typeof(Page));
    HttpContext.Current.Handler =p;
    

    ( BuildManager在 System.Web.Compilation )

    这只是个主意……但我 不会 这样做,因为每次都要支付编译成本(与几乎所有其他操作相比,这确实很高),并且需要在重新启动之前中断应用程序文件的写入(默认值为15)。

    简短回答: 是的 你可以这样做, 但我不会的 . 很可能有更好的方法来实现你的目标,也许如果你提供更多的背景,我们可以提供更好的解决方案。