如果我们有一个母版页和一个内容页面.那么内容页面@Page指令看起来像
<%@ Page Language="C#" MasterPageFile="~/Site1.Master" .... />
Run Code Online (Sandbox Code Playgroud)
所以,为了访问内容页面中的母版页控件,我们应该使用
<%@ MasterType VirtualPath="~/Site1.Master" %>
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是为什么我们在@page指令中定义了这个内容页面在主页面中时使用@MasterType指令(这里是Site1.Master)
我刚刚注意到,在我从UpdatePanel主页面内部执行asyncpostback后,我的页面标题将重置为标准的"Untitled Page" .从母版页内部回发期间(例如,当我单击母版页内的搜索框按钮时),标题不会丢失.
我假设通过使用不同的contentplaceholder专门设置文档标题我将避免这样的问题,但显然我错了.除了必须在ASPX页面的代码隐藏中明确设置标题之外还有其他我想念的东西(我希望避免使用下面设置的方式)吗?
这是我的页面的基本要点,即调用母版页(下面的母版页代码)
<asp:Content ID="Content1" ContentPlaceHolderID="title" Runat="Server">
Page Title
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="head" Runat="Server">
<script type="text/javascript">
//random javascript validators
</script>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="content" Runat="Server">
<div class="title">
Account Management
</div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
//Username + Password Set Form
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
这是母版页.ASP.NET AJAX ScriptManager首先放在<form>正文中的标记之后.
<head id="Head1" runat="server">
<title>
<asp:ContentPlaceHolder id="title" runat="server">
</asp:ContentPlaceHolder>
</title>
//Stylesheet references
<script type="text/javascript">
//Random javascript functions
</script>
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head>
Run Code Online (Sandbox Code Playgroud) 我想知道MVC框架是否可以利用嵌套母版页?如果有的话,是否有人知道如何实现这一目标?
我必须Control在一个绑定到母版页的aspx页面中找到一个.
母版页包含:
<asp:ContentPlaceHolder ID="MainContent" runat="server"/>
Run Code Online (Sandbox Code Playgroud)
内容页面包含:
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
我添加了一个Table与ID formtable作为一个孩子Content2.
我尝试使用以下代码来访问Table,但代码返回null:
protected void Ok_Click(object sender, EventArgs e)
{
Table tblForm = this.FindControl("MainContent").FindControl("formtable") as Table;
}
Run Code Online (Sandbox Code Playgroud)
我该如何访问Table?
我需要设置内容页面默认按钮.我的代码是这样的:
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"
defaultbutton="BtnSearch" defaultfocus="TxtSearchValue">
Run Code Online (Sandbox Code Playgroud)
它工作正常,但我的主页菜单有一个图像按钮,如聊天,我可以按回车键触发图像按钮点击事件,但它不会触发内容页面中的默认按钮.
如何处理这类问题?
我们处于相同的情况,因为问题使Twitter Bootstrap导航栏链接处于活动状态,但在我们的情况下,我们正在使用ASP.net和MasterPages ......
问题是导航栏在主页面上定义,当您单击菜单项时,您将被重定向到相应的子页面,那么如何在不重复每个子页面中的逻辑的情况下,如何更改导航栏活动项目?(最好只在主页面上没有会话变量和javascript)
谷歌搜索了一段时间后,我对如何在asp mvc 3中这样做有点困惑.
因此,任务是为几个控制器的视图提供一个公共布局(或主?)页面.所有视图都是强类型的...这个布局页面实际上可视化一些强类型的对象.所以,我需要将这个对象传递给布局页面,将它传递给`Html.RenderPartial()'或者在页面中正确呈现它.
文章将数据传递给查看母版页(C#)(虽然是mvc2的旧版本)提供了一个示例来提供基本抽象控制器类,并将模型传递给ViewData.这可能是治愈方法.
但...
在某些线程中,我找到了一种可以创建强类型母版页的方法:
<%@ Master ... Inherits="System.Web.Mvc.ViewMasterPage<MyWeb.Models.Client>" %>
Run Code Online (Sandbox Code Playgroud)
那么,mvc3中有相同的方法吗?或者将数据传递到布局页面的唯一方法是使用ViewBag还是ViewData?
在阅读了什么是在asp.net-mvc中将ViewModel数据绑定到母版页的最佳方法之后,我已经考虑了Darin的答案,但仍然认为这一组视图将具有相同的布局,并且没有理由反对DRY原理.
那么,如何将强类型对象传递给布局页面?或者我混淆了什么?
我正在寻找一种方法(最好)从用户控件强烈键入母版页,该控件位于使用母版页的内容页面中.
遗憾的是,你不能在用户控件中使用它:
<%@ MasterType VirtualPath="~/Masters/Whatever.master" %>
Run Code Online (Sandbox Code Playgroud)
我正在尝试从用户控件访问母版页的属性,而不是必须将属性从母版页传递到内容页面到用户控件,因为多个内容页面使用相同的用户控件.一个变化,一个地方诸如此类.
我有一个母版页:
<%@ Master Language="C#" AutoEventWireup="true" Codefile="AdminMaster.master.cs" Inherits="AlphaPackSite.MasterPages.AdminMaster" %>
Run Code Online (Sandbox Code Playgroud)
然后我有一个公共变量:
public partial class AdminMaster : System.Web.UI.MasterPage
{
protected bool blnShowDialogue = false;
Run Code Online (Sandbox Code Playgroud)
在我的内容页面中,我想设置此变量:
blnShowDialogue = true;
Run Code Online (Sandbox Code Playgroud)
所以在我的母版页中我可以得到代码:
$(function() {
<%if(blnShowDialogue == true){%>
$("#dialog").dialog();
<% } %>
}
Run Code Online (Sandbox Code Playgroud)
这有意义吗?当我尝试Master.blnShowDialogue或blnShowDialogue =等的组合时,似乎没有任何工作.
当前上下文中不存在名称"blnShowDialogue"
master-pages ×10
asp.net ×9
c# ×5
asp.net-ajax ×1
asp.net-mvc ×1
button ×1
findcontrol ×1
navbar ×1
winforms ×1