2013-05-24 3 views
1

У меня есть ситуация, когда наш основной проект требует тяжелых шаблонов.Динамическая замена содержимого во взглядах

Мы разработали решение, которое должно сделать проект очень гибким, но я не уверен, как реализовать решение.

В наших взглядах, которые я хочу, чтобы иметь возможность размещать свои теги, как это:

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

Теперь эти теги не имеют ничего общего с моделью, что мы хотим сделать, это заменить эти тег во время выполнения на сервере (а не в браузере!) с содержимым файла на сервере (под некоторым назначенным каталогом) под названием «SomeTag.html».

Есть ли способ добавить метод или переопределить метод в базовом контроллере (который наследует «Контроллер»), который ищет результат просмотра для любого {{Tag}} и заменяет его соответствующим Файл Tag.html?

Например, возможно, это уместно?

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

Это файл статический файл? Это единственный файл или у вас есть такие файлы и некоторые теги? Вы хотите точно такие теги или можете разрешить решение с помощью @ Html.RenderStaticFile («SomeTag») вместо {{SomeTag}}? –

ответ

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") 
Смежные вопросы