Member 11957600 Ответов: 4

Как показать общий текст на многих страницах.


I have 1000 of page in asp.net application with many master page. I want to show Happy new year on every page. So how it can be achieved without apply code on every page or master page?


Что я уже пробовал:

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

4 Ответов

Рейтинг:
2

jgakenhe

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

Веб-пользовательский элемент управления - это веб-форма, но он может быть размещен на нескольких веб-формах и даже на главных страницах. Если бы это был я, я бы создал 1 веб-пользовательский элемент управления и поместил его на каждую главную страницу. Если у вас есть 10 основных страниц для 1000 веб-форм, вы все равно сэкономите много времени, и в будущем вам будет легче управлять ими.

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

//Here is the Web User Control named Head.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Head.ascx.cs" Inherits="MyWebsite.UI.Web.WUC.Head" %>
<% @ OutputCache Duration="3600" VaryByParam="None" VaryByCustom="browser" %>
<!-- **** above I am setting the Web User Control to cache for 1 hour **** -->
	<div id="title">This is Text I want to display in EVERY PAGE!
	</div>





//Here is my Master Page named Main.Master
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Main.master.cs" Inherits="MyWebsite.UI.Web.Templates.Main" %>
<%@ Register Src="../WUC/Head.ascx" TagName="Header" TagPrefix="Head" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" />
    <asp:ContentPlaceHolder ID="head" runat="server">
    </asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div id="struct">
<Head:Header ID="head2" runat="server" />
<!-- **** the tag above is the Web User Control being called in the Master Page **** -->
    <div id="content">
        <div id="main">
    <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
        
    </asp:ContentPlaceHolder>
        </div>
    </div>
</div>
</form>
</body>
</html>


Рейтинг:
2

rah_sin

Возможно, вы можете добавить общий фрагмент страницы ко всем другим страницам для отображения вашего сообщения.


Рейтинг:
2

F-ES Sitecore

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

Удаление белых символов из ASP.NET вывод с использованием ответа.свойство Filter[^]

Если вы загуглите HttpResponse.Фильтр вы, вероятно, можете найти примеры, более близкие к тому, что вы хотите сделать.


Рейтинг:
0

Afzaal Ahmad Zeeshan

Цитата:
У меня есть 1000 страниц в asp.net приложение со многими основными страницами. Я хочу показать Счастливый Новый год на каждой странице.
Вы можете легко добавить нужный контент на главные страницы этих шаблонов веб-страниц. Я предполагаю, что вы используете ASP.NET однако веб-формы в вашем проекте можно использовать Response.Write() (это лучший способ испортить ваше веб-приложение!) или вы можете попытаться динамически создать веб-страницу, а затем перейти к основным страницам для добавления страниц и т. д. Один из методов заключается в использовании JavaScript и добавлении содержимого после загрузки страницы,
var paragraph = // content to be added.
document.body.insertBefore(paragraph, document.body.firstChild); // Add to top.

Если это работает, вы можете использовать этот метод для включения содержимого с помощью JavaScript и не изменять какую-либо главную страницу. Это будет работать во всем веб-приложении, включите сценарий.
Цитата:
Так как же этого можно достичь, не применяя код на каждой странице или главной странице?
Это та часть, которая невозможна. Каждое изменение требует изменения кода, который выполняется.

Подробнее читайте здесь,
Динамическое внедрение HTML-кода из строки в asp.net переполнение стека страниц[^]
Инъекция кода-Википедия, свободная энциклопедия[^]
javascript-как вставить элемент before () в тег body? - переполнение стека[^]