我有一个带有主页的asp.net网站,我可以使用,iframe
所以我的.aspx
页面会加载到里面iframes
.(意思是它不会加载主页面)
有点像我的iframe
意志contentplaceholder
或者也许contentplaceholder
会在里面吗?
有任何想法吗?
我有一个使用asp.net母版页的应用程序,我想在页面顶部和底部重复一些内容.目前我使用这样的东西:
母版页<html>
<body>
<asp:ContentPlaceHolder ID="Foo" runat="server">
</asp:ContentPlaceHolder>
<!-- page content -->
<asp:ContentPlaceHolder ID="Bar" runat="server">
</asp:ContentPlaceHolder>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
内容页
<asp:Content ID="Top" ContentPlaceHolderID="Foo" runat="server">
<!-- content -->
</asp:Content>
<asp:Content ID="Bottom" ContentPlaceHolderID="Bar" runat="server">
<!-- content repeated -->
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
如您所知,在代码中重复一些事情通常并不好.它会产生维护问题.以下是我想要做的,但由于重复的id属性,显然不会起作用:
母版页<html>
<body>
<asp:ContentPlaceHolder ID="Foo" runat="server">
</asp:ContentPlaceHolder>
<!-- page content -->
<asp:ContentPlaceHolder ID="Foo" runat="server">
</asp:ContentPlaceHolder>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
内容页
<asp:Content ID="Top" ContentPlaceHolderID="Foo" runat="server">
<!-- content (no repetition) -->
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
有没有办法使用asp.net webforms做到这一点?解决方案不一定必须与上述内容相似,只需要以相同的方式工作.
我在Visual Studio 2008中使用asp.net 3.0
我一直在网上搜索而没有找到任何答案(关于堆栈溢出有几个接近的问题,但它们似乎没有得到答案或相同),所以我认为我会构成我自己的一个.它围绕嵌套母版页和访问祖父母大师的Content PlaceHolder的内容页面展开,即使它没有在父嵌套母版中重新公开.我想知道这是不可能的.
Core Site.Master
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>
<asp:ContentPlaceHolder ID="TitleContent" runat="server">
<%= Html.GlobalModel().PageTitle %>
</asp:ContentPlaceHolder>
</title>
<asp:ContentPlaceHolder ID="HeadContent" runat="server">
<link rel="shortcut icon"
href="<%= ViewContext.ClientContent( "Content/Tiki.ico" ) %>"
type="image/x-icon"/>
</asp:ContentPlaceHolder>
</head>
<body>
<asp:ContentPlaceHolder ID="SiteContent" runat="server"/>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
嵌套的Site.Master(请注意TitleContent和HeadContent是如何自定义的,因此来自Core Site.Master的'默认'内容应该生效)
<%@ Master Language="C#" MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewMasterPage" %>
<asp:Content ContentPlaceHolderID="SiteContent" runat="server">
<asp:ContentPlaceHolder ID="SiteContent" runat="server">
<h1>Nested Header</h1>
<asp:ContentPlaceHolder ID="NestedContent" runat="server"/>
</asp:ContentPlaceHolder>
</asp:ContentPlaceHolder>
Run Code Online (Sandbox Code Playgroud)
ContentView.aspx(引用嵌套的Site.Master,尝试的TitleContent替换将不起作用.)
<%@ Page Language="C#" MasterPageFile="Site.Master" %>
<asp:Content ContentPlaceHolderID="NestedContent" runat="server">
<p>Nested content. This will work.</p>
</asp:Content>
<asp:Content ContentPlaceHolderID="TitleContent" runat="server"> …
Run Code Online (Sandbox Code Playgroud) 我有一个母版页,我的所有页面都继承了它.对于格式化,我想在ContentPlaceHolder中放置不同页面的内容.
现在,我怎么能插入一切呢?由于我打算用数据库中的东西填充ContentPlaceHolder,我想我必须以编程方式进行填充.
如何向ContentPlace Holder添加控件?我检查了其他答案,但我无法通过其ID访问它.
我应该从一开始就使用多个ContentPlaceHolders吗?假设我想放电影.如果只有一个包含所有图像,描述和评级,每个东西都要有一个ContentPlaceHolder吗?
我对其他解决方案持开放态度,因为我没有使用ASP的经验.
我是,使用MVC开发Web应用程序,我需要在我的站点中使用嵌套的MasterPages,以便共享Visual Components.
我有两个母版页和一个ContentPage:
我想从Content视图中引用位于顶级Parent.master上的ContentPlaceHolder,该视图具有Child.master作为MasterPage.似乎我可以使用直接父级的ContentPlaceHolders,但不能使用间接父级.让我们看一下样本:
Parent.master
<%@ Master Language="C#"
Inherits="System.Web.Mvc.ViewMasterPage"%>
<HTML>
<head runat="server">
<title>
<asp:contentplaceholder id="Title" runat="server" />
</title>
</head>
<body>
<asp:contentplaceholder id="Body" runat="server" />
</body>
<HTML>
Run Code Online (Sandbox Code Playgroud)
Child.Master
<%@ Master Language="C#" MasterPageFile="~/Views/Shared/Parent.master"
Inherits="System.Web.Mvc.ViewMasterPage"%>
<asp:Content ID="BodyContent" ContentPlaceHolderID="Body" runat="server">
<asp:contentplaceholder id="Body1" runat="server" />
<asp:contentplaceholder id="Body2" runat="server" />
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
Content.aspx
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Child.master"
Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="TitleContent" ContentPlaceHolderID="Title" runat="server">
<!-- Placed to the top parent Master page (does not work) -->
The page title
</asp:Content>
<asp:Content ID="Body1Content" ContentPlaceHolderID="Body1" runat="server">
<!-- …
Run Code Online (Sandbox Code Playgroud) 我在Master页面中有Update面板:
<asp:ScriptManager id="CartScript" runat="server"></asp:ScriptManager>
<asp:UpdatePanel id="CartBox" runat="server" updateMode="Conditional">
<ContentTemplate>
Košík [ <asp:HyperLink NavigateUrl="~/Account/Login.aspx" ID="ShoppingCart" runat="server" text="" /> ] <asp:LinkButton ID="DeleteCart" runat="server" Text="Vymazat košík" OnClick="ThrowCart_Click" />
</ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
和内容页面中的购买按钮:
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:Button ID="BuyButton" Runat="server" Text="P?idat do košíku" onclick="Buy_Click" />
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
所以我需要为此按钮添加更新面板AsyncPostBackTrigger.
首先我尝试从内容页面添加它:
protected void Page_Load(object sender, EventArgs e)
{
AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
trigger.ControlID = "BuyButton";
UpdatePanel panel = (UpdatePanel)Master.FindControl("CartBox");
if (panel != null)
{
panel.Triggers.Add(trigger);
}
ScriptManager script = (ScriptManager)Master.FindControl("CartScript");
script.RegisterAsyncPostBackControl(BuyButton);
}
Run Code Online (Sandbox Code Playgroud)
但它确实出错了:在UpdatePanel'CartBox'中找不到ID为"BuyButton"的控件.
所以我尝试从Master页面添加:
protected void …
Run Code Online (Sandbox Code Playgroud) asp.net updatepanel master-pages ajax.net contentplaceholder
是否可以通过代码在ContentPlaceHolder中设置数据?这就是我的想法:
dim oCPH as new ContentPlaceHolder
oCPH.id = "column1" 'this id is the one that corresponds with the ID I set on the page
oCPH.content = "content here" '<-- not real code
Run Code Online (Sandbox Code Playgroud)
显然这不是正确的语法,我希望这澄清了我的要求.
<div class="welcome">
<asp:ContentPlaceHolder runat="server" ID="FeaturedContent" />
<div style="margin: 10px 0;">
<asp:ContentPlaceHolder runat="server" ID="MainContent" />
</div>
<!-- etc -->
</div>
Run Code Online (Sandbox Code Playgroud)
我在asp.net项目中有母版页面,它有两个内容占位符?现在我正在努力创造.这个项目在MVC中如何在_Layout.cshtml中取两个内容占位符.所以在派生页面我可以把我的内容放在这之间.
我正在玩动态占位符,并被一个预先填充的概念所震撼.有没有办法为我的一个占位符选择默认渲染,这将避免在经验编辑器中的"选择渲染"对话框?
场景:我有一个名为"PageHead"的渲染,它有三个渲染.其中一个是占位符"PageTeaserPh",它目前允许两个渲染:一个是"PageTeaser",第二个是"PageTeaserWithImage".我希望占位符"PageTeaserPh"始终将渲染选为"PageTeaser",因此避免使用"选择渲染"对话框.
我做了一些功课,并想知道这是否与标准值相关(我们可以在模板级别使用它;虽然不能确定渲染)并且我也听说过命令模板概念(不是深入的).
任何和所有帮助表示赞赏.
rendering sitecore contentplaceholder sitecore8 experience-editor
我有一个母版页.在这个母版页中,我有一个内容占位符,id="ContentPlaceHolder1"
我将其更改为id="main-content"
然后更改使用此母版页创建的任何内容页面的ContentPlaceHolderID,但是我有一个错误:
'main-content'不是有效的标识符.
我该怎么办?
asp.net ×7
master-pages ×6
asp.net-mvc ×2
c# ×2
ajax.net ×1
iframe ×1
nested ×1
razor ×1
rendering ×1
sitecore ×1
sitecore8 ×1
updatepanel ×1