标签: master-pages

在运行时设置ASP.NET母版页

我正在开发一个需要能够支持两个或更多外观的站点,在运行时可以变换.我希望能够通过CSS开关来处理更改,但看起来我需要为每个设计使用不同的母版页.

那么,在运行时设置母版页的最佳方法是什么?Page.MasterPageFile只能在Page.OnPreInit事件中设置.看起来解决方案是让我的所有页面都从处理PreInit事件的公共基础继承,或者使用HttpModule来执行此操作.

有什么建议?

.net asp.net master-pages

8
推荐指数
1
解决办法
8566
查看次数

嵌套的Masterpages和.FindControl

在一个站点上,我只使用单级主页,在使用该主页的页面中,我可以执行此操作.Master.FindControl("controlName")来访问该控件.工作良好.

但是,在具有两个母版页级别的站点上使用相同的代码.以MainMaster为主的MainMaster和SpecificMaster.

因此,在使用SpecificMaster的页面上,FindControl为对象返回null.我看到的唯一区别是主页的嵌套.

当我设置断点并查看page.Master时,它显示的是SpecificMaster,而SpecificMaster正确显示MainMaster作为其主节点,但FindControl仍然失败.

当我在IE中查看源代码时,控件被正确命名,没有.NET正在进行中.

这有什么想法?

TIA!

c# asp.net master-pages findcontrol

8
推荐指数
1
解决办法
6595
查看次数

Ruby on Rails中是否存在某种母版页功能?

在过去七年左右的时间里,我一直是.Net开发人员,过去几年一直在与ASP.Net合作.我现在正在使用Ruby on Rails进行一些项目,我想知道Ruby on Rails中是否有东西可以让你做主页类型的东西?

基本上,我想要一种方法,通过页眉和页脚等为网站提供一致的外观和感觉,然后让每个页面将其内容放在其中.你是如何做到这一点的?

layout master-pages ruby-on-rails

8
推荐指数
1
解决办法
2738
查看次数

从ASP.net VB中的子页面访问母版页属性

我有masterpage.master.vb,我有属性,如;

 Private _SQLerror As String
    Public Property SQLerror() As String
        Get
            Return _SQLerror
        End Get
        Set(ByVal value As String)
            _SQLerror = String.Empty

        End Set
    End Property
Run Code Online (Sandbox Code Playgroud)

然后我有一个aspx页面,我需要在其中使用此属性,例如;

 If **[masterpage property sqlerror]** = Nothing Then
            InternalSQLErrLabel.Text = ("No Errors Reported")
        End If
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我如何解决这个问题?我试过搜索,但大多数文章都在网页控件的上下文中讨论......

谢谢.

vb.net asp.net master-pages properties

8
推荐指数
1
解决办法
2万
查看次数

有关在asp.net中显示用户消息的好方法的建议吗?

我有一个充满页面和用户控件的应用程序,其中许多都有一个或多个标签控件,用于向用户显示各种不同的消息.

示例:通常在Company.aspx页面上使用的AddCompany.ascx用户控件(使用App.Master MasterPage)上面有一个名为"OutOfCreditLabel"的标签,其中包含Text ="错误:您无法创建新公司,因为您已经出局信用".代码检查信用额度并在需要时显示标签.

我想摆脱所有这些标签,只是有一个我可以从任何地方调用的方法

ShowUserMessage("Text goes here");
Run Code Online (Sandbox Code Playgroud)

在之前的项目中,我已将其实现为母版页上的单个标签和.master.cs中的公共方法 - 只要页面具有该行

<%@ MasterType VirtualPath="~/App.master" %>
Run Code Online (Sandbox Code Playgroud)

在它,这工作 - 但我无法让它在用户控件(.ascx.cs)上工作.这有诀窍吗?

或者,还有更好的方法?

对于可在网站中的任何位置使用的"全局"用户消息方法,您会建议什么?

也许是任何不错的jQuery解决方案?

更新
RPM1984已要求进一步澄清,所以我试图以不同的方式问这个问题:

我需要一个方法,我可以从代码隐藏(页面或用户控件)调用,然后将显示我指定给用户的任何文本,例如stackoverflow在您下次访问网站时如何告诉您有关问题的新答案.它可以在窗口的顶部(如SO)或页面的某个位置,无关紧要.重要的是它是一种"全局"方法,而不是各种javascript警报和asp:标签遍布项目中的每个其他页面和用户控件.

像这样的场景:

用户单击我页面上"widget manager"用户控件上的"Create Widget"按钮.在事件处理程序中:

if (User.IsOutOfCredit)
{
    ShowUserMessage("Sorry, you cannot create widgets; you are out of credit.");
}
Run Code Online (Sandbox Code Playgroud)

这导致用户看到"抱歉,你不能创建小部件;你没有信用." 无论是在某个页面的弹出页面还是红色文本中,或者像StackOverflow一样在顶部,一切都很好

那有意义吗?

asp.net user-interface user-controls master-pages

8
推荐指数
1
解决办法
3985
查看次数

如何在内容页面中使用母版页中的方法

我正在用C#编写ASP.NET 4应用程序.我有一个母版页,其中我有以下方法:

public void DisplayMessage(string input)
{
   Label myMessageDisplayer = (Label)FindControl("uxMessageDisplayer");
   myMessageDisplayer.Text = input;
}
Run Code Online (Sandbox Code Playgroud)

我可以从内容页面调用此方法吗?
目前,我在内容页面中使用此代码:

Master.DisplayMessage("Item has been inserted.");
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

'System.Web.UI.MasterPage'不包含'DisplayMessage'的定义,并且找不到接受类型'System.Web.UI.MasterPage'的第一个参数的扩展方法'DisplayMessage'(你是否缺少using指令?或汇编参考?)

任何帮助将不胜感激.

c# asp.net master-pages

8
推荐指数
2
解决办法
3904
查看次数

如何使页面不使用ASP.NET MVC 3中的母版页

我有一个MVC3网站,我有一些页面,我不想使用母版页布局.默认母版页在_ViewStart文件中指定,因此将应用于所有内容.

如何配置以便在没有母版页的情况下显示某些页面?

谢谢

马特

c# master-pages asp.net-mvc-3

8
推荐指数
1
解决办法
4258
查看次数

如何在ASP.net中获取页面中的Div页面?

我在我的Web应用程序中使用母版页.现在我正在创建多个内容页面.Master页面中有一个Div有标签.现在我想在一个内容页面中隐藏Div,而在其他内容页面中的其他要求是获取Div内的标签.

那么如何隐藏主页面中的Div,来自内容页面以及如何从内容页面中获取该Div中定义的标签?

html asp.net master-pages web-applications content-pages

8
推荐指数
1
解决办法
2万
查看次数

如何在ScriptManager中更改已注册脚本的顺序

背景

在我们的母版页中,我们ScriptManager看起来像这样

<asp:ScriptManager ID="ScriptManager" runat="server" EnablePartialRendering="False" EnableScriptLocalization="true">
    <Scripts>
        <asp:ScriptReference Path="~/js/master.js" />
        <asp:ScriptReference Path="~/js/jquery-min.js" />
    </Scripts>
</asp:ScriptManager>
Run Code Online (Sandbox Code Playgroud)

我通过执行以下操作在页面上的嵌套控件中注册其他脚本

protected override void OnPreRender(EventArgs e)
{
    ScriptManager.RegisterClientScriptInclude(this, this.GetType(), "jquery-ui", "~/js/jquery-ui.js");
    base.OnPreRender(e);
}
Run Code Online (Sandbox Code Playgroud)

预期

  1. master.js
  2. jQuery的min.js
  3. jquery-ui.js*

实际

  1. jquery-ui.js*
  2. master.js
  3. jQuery的min.js

有没有办法更改已加载已注册脚本的顺序?

- 要么 -

是否有可能至少确保在ScriptManager代码隐藏注册脚本之前注册在实际块中注册的脚本?

.net c# asp.net master-pages

8
推荐指数
1
解决办法
2812
查看次数

为什么我的ASP Page.Request.Files []总是空的?我已经尝试了所有发布的修补程序

我们有4个人为我们的最终学校项目建立了一个网站.我们需要允许用户上传pdf.我们正在使用Visual Studio 2012,我们设置了主页面,整个登录过程和用户​​创建都有效.我们正在使用jQuery和jQueryMobile,因为该网站也需要为手机工作,这使它更容易一些.

但是当我们想要检查客户端试图在我们的代码中上传的文件时,Request.Files总是为空.为什么是这样?

我有以我正在使用的形式设置的enctype,所以我应该没事.单击上传按钮时,页面会重新加载,文件输入中的文本字段将被清除.然后,它运行代码隐藏方法.

我们得到的输出是:

HALLOOOOOOOOOOOOOO!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
In the house
Files[] size is 0
Run Code Online (Sandbox Code Playgroud)

Master页面如下所示:

    <%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Main.Master.cs" Inherits="SendEtBrev.Main" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
  <head runat="server">
      <title>SendEtBrev.dk</title>

      <meta http-equiv="Pragma" content="no-cache" />
        <meta http-equiv="Expires" content="-1" />
        <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=no;" />
        <meta name="MobileOptimized" content="width" />
        <meta name="HandheldFriendly" content="true" />

        <link rel="stylesheet" type="text/css" href="/Styles/reset.css" />
        <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
        <script src="/Js/fixes.js"></script>
        <script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css" />
        <link rel="stylesheet" type="text/css" href="/Styles/sendetbrev.css" />   

      <asp:ContentPlaceHolder ID="head" runat="server" />


  </head>
  <body>
      <header>
        <div …
Run Code Online (Sandbox Code Playgroud)

asp.net upload master-pages file request

8
推荐指数
1
解决办法
1万
查看次数