1

我有一种情况,我们的核心项目需要大量模板。

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

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

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

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

有没有办法在基本控制器(它将继承“控制器”)中添加方法或覆盖方法,该控制器在视图的输出中搜索任何 {{Tag}} 并用它的相应 Tag.html 文件替换?

例如,也许这是合适的?

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

1 回答 1

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")
于 2013-05-24T05:25:28.833 回答