【问题标题】:ASP.NET C# - Showing right contentplaceholder in default.aspxASP.NET C# - 在 default.aspx 中显示正确的内容占位符
【发布时间】:2015-03-27 13:05:09
【问题描述】:

我正在尝试帮助朋友使用他用 asp.net 编写的网站。我是 asp.net 的新手,但我知道 php 和 mysql。知道我想弄清楚,如何声明哪个页面(something.aspx)显示在 ContentPlaceHolder 中。

例如:

我有一个母版页 (web.master),我有:

然后我有很多内容页面(例如 article.aspx、section.apsx),我有:

一些内容

所以我的问题是,网站如何知道要打开哪个 .aspx 文件?如果我打开我朋友的网站,我会发现 cpMainContent 中的内容来自文件 section.aspx。如果我创建新页面,例如 section2.aspx,我应该如何让网站知道它应该使用新创建的页面?

非常感谢您的回复。

【问题讨论】:

标签: c# asp.net


【解决方案1】:

创建新页面时,您可以为其命名,然后在按“添加”之前,您可以勾选“选择母版页”。它将弹出项目中所有母版页的对话框,您可以选择一个。就这么简单!

【讨论】:

  • 谢谢。问题是,我正在处理我没有创建的网站。而在这个项目中,只有一个母版页——web.master。我需要定义,当用户使用 default.aspx 时,它将显示在 section_home.aspx 的 ContentPlaceHolder ID="cpMainContent" 内容中(现在它显示来自 section.aspx 的内容,我需要更改它)
  • @midz,这听起来有点奇怪......你确定你在这里谈论的是一个 aspx 文件,而不是一个用户控件 (.ASCX)?对于 webforms,default.aspx 的显示内容应该在 default.aspx 或单独的用户控件中......
  • 我不确定我是否完全理解你的问题,但如果页面已经创建,它连接到的母版页在页面指令中定义,如 MasterPageFile="~/Master.掌握”。你可以在那边改文件名
  • 是的,我知道,但我只有一个用于整个网站的母版文件。当我编译我的网站时,它会将我带到 localhost:50165/default.aspx。据我了解,该站点由 web.master (这是整个项目的母版页)和 contentplaceholder cpMainContent 中的 section.aspx 组成。我需要 web.master 来显示 section_home.aspx 而不是 section.aspx 的内容。
  • section.aspx 在 contentplaceHolder 中的假设是不正确的。 ASPX 页面包含映射到母版页中相应 ContentPlaceHolder 的内容控件。您导航到 default.aspx,您会看到 default.aspx 中的内容,如其“内容”控件中定义的那样。当您导航到 section.aspx 时,您会看到该 section.aspx 中控件的内容
【解决方案2】:

用户不能直接访问母版页。可以通过将锚标记的目录路径添加到其他页面(与母版页关联的内容页/与母版页不关联的内容页)来执行重定向。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-04
    • 2018-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    • 1970-01-01
    相关资源
    最近更新 更多