【问题标题】:Dynamic include with ASP.NET Web PagesASP.NET 网页的动态包含
【发布时间】:2015-04-17 05:41:31
【问题描述】:

ASP.NET Web Pages/Razor 中,有没有办法在不知道文件名的情况下包含文件,例如 Helper 或类似的东西?

在 Web 窗体中,我通过动态添加用户控件来做到这一点,如下面的代码,但我想知道是否有办法在网页中做类似的事情?

ContentTemplateBase control = (ContentTemplateBase)Page.LoadControl("~/ContentTemplates/" + detail.Template + ".ascx");
control.DataSource = detail;
plhTemplate.Controls.Add(control);

我知道我可以用一堆条件语句来做到这一点,比如......

if (detail.Template== "Template1")
{
    @MyHelpers.Template1(detail)
} else if (detail.Template== "Template2")
{
    @MyHelpers.Template2(detail)
} ... etc

...但想要这样做而不必列出所有可能的选项。

【问题讨论】:

  • 你想在第一次渲染或 OnPostBack 时添加这个控件吗?
  • 在第一次渲染时,但要明确的是这是网页而不是网页表单。
  • 这并不是真正的网页问题。这是一个编码/设计问题。无论您想做什么,都极有可能实现。但是,我怀疑这里的任何人都可以仅根据您提供的信息来帮助您实现它。
  • 在重新阅读网页文档时,我发现我可以使用 RenderPage() 方法来包含另一个文件中的代码,所以这似乎是最好的选择。

标签: razor asp.net-webpages


【解决方案1】:

在重新阅读网页文档时,我发现我可以使用 RenderPage() 方法来包含另一个文件中的代码,所以这似乎是最好的选择。

【讨论】:

    猜你喜欢
    • 2013-06-29
    • 1970-01-01
    • 2010-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    相关资源
    最近更新 更多