2010-01-29 5 views
4

Я отчаянно хочу использовать серверные компоненты в проекте, над которым я работаю, потому что у меня просто есть HTML-код, который повторяется, и мне нужно получить его на нескольких страницах. Must Я использую ascx или какую-либо другую технологию include ... Я имею в виду, будет ли удар молнии, если я использую серверную часть?Проблемы с серверной частью

Мой клиент - средний человек - говорит: «Делайте то, что проще всего, это, вероятно, скоро будет переделано в CMS». Могу ли я использовать серверную часть?

Это ASP.NET 2.0.

Примечание: Я чувствую, что это было задано раньше, но я не мог его найти. Если у вас есть, сообщите мне, и я лично удалю его, спасибо!

Редактировать: Любой способ получить включение ON ONE LINE будет в порядке со мной, если у вас есть предложения.

Редактировать: Почему я люблю включает?

Включить код:

!--#include file="inc_footer.aspx"--> 

тот же код для элемента управления. Прежде всего, необходимо один из этих

<%@ Register TagPrefix="a" TagName="HeyFooter" Src="inc_footer.ascx" %> 

, а затем вы можете использовать его как этот

<a:HeyFooter runat="server" /> 

это своего рода долго, что мне нужно.

Примечание Две проблемы с безопасностью включают в себя: 1) не используйте расширение .inc, так как оно может быть просмотрено. 2) не включают имена файлов на основе пользовательских переменных, как лучшие точки ответа o ut.

+0

Почему вы так стараетесь избегать пользовательских элементов управления? Кажется, для меня нет никаких дополнительных дополнительных усилий. –

+0

@Nick Higgs, есть ли способ получить весь код на одной строке? Я не хочу вставлять две строки кода - один из них определяет тег, другой - для его простого включения. Я знаю, что это жалко, но мне просто нужно включить HTML. Кроме того, вы знаете, «как можно проще» и так далее. В любом случае, пожалуйста, поставите кратчайший возможный код для ASCX и сравните его с ответом здесь. Может быть, я не знаю, что можно оставить без внимания ... –

+0

@yar: По-моему, «простой, насколько это возможно» означает, что не использовать серверные компоненты, которые по умолчанию отключены, вызывают проблемы с безопасностью и которые никто больше не использует. –

ответ

4

Если вы включаете файл через строковую переменную: <!--#include file=some_variable -->, то в зависимости от того, как эта переменная заполняется, возможны атаки, которые хакер может сделать, чтобы включить свои собственные файлы и запустить произвольный код на вашем компьютере. Но пока вы используете строковый литерал, вы не столкнетесь с этой проблемой.

Я бы использовал Master Pages в ASP.NET. Это общепринятый способ иметь общие области страницы.

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

+0

В чем проблема с серверной стороной, кроме того, что они являются старой школой? –

+1

Если вы устраните потенциальные угрозы безопасности с помощью серверной части, в них нет ничего плохого. Я просто предпочитаю мастер-страницы и все полезные материалы, которые вы можете сделать с ними. – Aaron

+0

Прохладный спасибо, я стараюсь не делать ничего интересного в этом конкретном проекте:) ... каковы риски для безопасности? Вы должны назвать их .aspx и все? –

2

Нет, вам определенно не нужно использовать причудливые способы веб-формы .NET, чтобы сделать это, если вы хотите сохранить его простым. Просто поставьте это в тех точках, где вы хотите, чтобы они вставили:

<!--#include virtual="../repeatStuff/fun.html" --> 

Появится html. Я дал путь один вверх и вниз по другому каталогу. Это «самый легкий», но также имеет силу быть очень простым. Обратите внимание, что это не будет отображаться в вашем визуальном дизайнере. (Я никогда не использую его в любом случае.)

+2

Визуальный дизайнер ... что что? Я кодирую программное обеспечение распознавания речи только в своем автомобиле, а затем говорю: «Разверните». –

+3

Итак, вы просто ездите туда и обратно между работой? Я думаю, вы можете перестать работать на собрания, а затем вернуться домой и вернуться, чтобы сгенерировать код. У меня просто две кнопки, для 0 и 1; это все, что я использую. Я, как правило, прямо на производство, чтобы избежать проблем с развертыванием. –

1

Я все еще использую каждый раз в разы, точно для цели, которую вы описываете.

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

Так у меня включает в себя, как это из глоссария помощи текстовых файлов:

<!--#include file="~/Glossary/BusinessDetails.inc"--> 

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

+0

классный, спасибо за это. честно говоря, я пытаюсь спровоцировать полицию, не используюшуюся для использования, потому что я знаю, что они там. Но +1 на данный момент :) –