动态替换视图中的内容

时间:2013-05-24 05:10:29

标签: asp.net-mvc action-filter

我的核心项目需要大量模板。

我们已经提出了一个解决方案,应该使项目非常灵活,但我不确定如何实施解决方案。

在我们的观看中,我希望能够像这样放置自定义标签:

<div class="some view">
     {{SomeTag}}
</div>

现在这些标签与模型没有任何关系,我们要做的是在服务器(而不是浏览器!)的运行时用服务器上的文件内容替换这些标签(在某些标签下)指定目录)名为“SomeTag.html”。

是否有某种方法可以在基本控制器(将继承“Controller”)中添加方法或覆盖方法,该方法在视图的输出中搜索任何{{Tag}}并替换为其相应的Tag .html文件?

例如,这可能是合适的吗?

    protected override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        base.OnActionExecuted(filterContext);
    }

1 个答案:

答案 0 :(得分:1)

您可以使用修改后的

形式

HtmlHelper.Partial(partialViewName)

您可以编写特定于您的方案的扩展方法

public static MvcHtmlString Template(this HtmlHelper htmlHelper, string templateKey)
{
    string partialViewName = null;

    // get partialViewName according to the template key

    return htmlHelper.Partial(partialViewName);
}

你会像

一样使用它
@Html.Template("SomeTag")