Razor ASP.NET网页的动态包含

Razor ASP.NET网页的动态包含,razor,asp.net-webpages,Razor,Asp.net Webpages,在中,有没有一种方法可以在不知道文件名的情况下包含文件,例如帮助器或类似的文件 在Web表单中,我通过动态添加用户控件来实现这一点,如下面的代码,但我想知道是否有一种方法可以在Web页面中执行类似的操作 ContentTemplateBase control = (ContentTemplateBase)Page.LoadControl("~/ContentTemplates/" + detail.Template + ".ascx"); control.DataSource = detail;

在中,有没有一种方法可以在不知道文件名的情况下包含文件,例如帮助器或类似的文件

在Web表单中,我通过动态添加用户控件来实现这一点,如下面的代码,但我想知道是否有一种方法可以在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

…但我想这样做,而不必列出所有可能的选项。

在重新阅读网页文档时,我看到我可以使用该方法包含来自另一个文件的代码,因此这似乎是最好的选择。

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