2017-02-17 4 views
0

У меня есть кусок HTML (это меню), который находится в двух местах в HTML-формате представления.Повторное использование HTML в двух местах в пределах SAME view

Как использовать его в обоих местах?

Я знаю, что могу разместить HTML в отдельном .cshtml, а затем использовать @Html.Partial("Menu"), но так как он нужен только в том же виде, кажется, что излишним будет отдельный файл.

Есть ли другой способ?

+2

'@ Html.Partial (« Меню »)' звучит как правильный способ обработки этого прецедента. – Shyju

ответ

2

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

+0

Спасибо. Но я по-прежнему считаю, что для этого сценария слишком много файлов. В этом случае у меня есть как минимум 2 вида. Это означает, что мне нужно создать 2 дополнительных файла. –

+0

Хорошо, тогда почему вы спрашиваете здесь, считаете ли вы, что это перебор? –

+0

Потому что я думал, что есть другой способ, для этого конкретного сценария, когда вы НЕ используете HTML-код для разных видов. –

0

Это также можно сделать с помощью @helper синтаксиса:

@MyMenu() 

<!-- another place on same page --> 
@MyMenu() 

<!-- On same page --> 
@helper MyMenu 
{ 
    <!-- Shared HTML here --> 
} 

https://weblogs.asp.net/scottgu/asp-net-mvc-3-and-the-helper-syntax-within-razor

Я не уверен, если есть какие-либо недостатки в использовании @helper но это делает работу в этом сценарии, где HTML Безразлично» t нужно делиться между страницами, только на одной странице.

Смежные вопросы