天道酬勤,学无止境

ASP.NET:在母版页中具有公共页面标题,每个页面都添加页面特定的标题?(ASP.NET: Having common Page title in master page with each page adding page-specific title?)

问题

我的母版页如下所示:

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

内容页面如下所示:

<asp:Content ID="TitleContent1"
     ContentPlaceHolderID="PageTitlePlaceHolder" runat="Server">
    My Page
</asp:Content>

这是通过在页面上放置内容页面特定标题(在本例中为“我的页面”)来实现的。 现在我想为站点名称的母版页中的标题添加一个全局前缀。 所以我想要:

<head runat="server">
    <title>
        Example.com:
        <asp:ContentPlaceHolder ID="PageTitlePlaceHolder" runat="server" />
    </title>

但是,当我执行此操作时,内容页面仍然在磁贴中没有“Example.com”的情况下呈现,就像它被忽略了一样。

为什么会发生这种情况,我该如何实现?

回答1

在 MasterPage 后面的代码中试试这个:

void MasterPage_PreRender(object sender, EventArgs e)
{
    Page.Title = "Example.com - " + Page.Title;
}
回答2

从母版页中删除标题标记并使用 Martin 提供的代码。 现在在您的内容页面中,在文件顶部的 Page 标签中设置标题,如下所示:

<%@ Page ... Title="Contact" %>
回答3

我发现最可接受的解决方法是使用多个ContentPlaceHolder控件。

<head runat="server">
    <title>
        <asp:ContentPlaceHolder ID="cphMasterTitle" runat="server">Example.com: </asp:ContentPlaceHolder>
        <asp:ContentPlaceHolder ID="cphSubtitle" runat="server" />
    </title>
</head>

请注意, <title>中的任何其他内容,包括空格,都将被删除。 ContentPlaceHolder内容之间的任何间距都需要在控件内完成。

当我不想向内容页面公开占位符时,我还使用了<asp:Literal runat="server">Example.com: </asp:Literal>

回答4

删除“runat =“server””但我不确定,试试吧

<head>
    <title>
        Example.com:
        <asp:ContentPlaceHolder ID="PageTitlePlaceHolder" runat="server" />
    </title>
回答5

两种选择。 一种是从<head> (jefferydu) 中删除runat=server

二是使用 Page.Title 作为字符串。 (马丁)

我更喜欢使用我在某处写的对象,为我使用的任何页面添加 Facebook 标题、搜索引擎描述等。 该对象将页面标题存储在三个字符串中 - 一个之前,一个是页面标题,一个是之后。

回答6

在母版页中,放置

    <title>websitename.com -<%: Page.Title.ToString() %> </title>

其中 websitename.com 是网站的域名。

然后在每个内容页面中,放置一个标题。

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • ASP.NET MVC-查看母版页,如何设置标题?(ASP.NET MVC - View with master page, how to set title?)
    问题 使用母版页时,为视图设置html标题(顶部)的首选方法是什么? 一种方法是在.aspx文件中使用Page.Title,但这在母版页中可能会与HTML代码混淆。 因此,假设没有服务器端控件,只有纯HTML。 还有更好的主意吗? 更新:我想在控制器或模型中不在视图中设置标题。 回答1 在母版页中,我们创建了一个“ init” ContentPlaceHolder和一个“ title” ContentPlaceHolder。 如果有人想以编程方式设置Page.Title,则可以在CSharp中的init占位符中进行设置,也可以使用标签覆盖“ title”占位符。 母版页 <asp:ContentPlaceHolder id="init" runat="server"></asp:ContentPlaceHolder> <head runat="server"> <asp:ContentPlaceHolder ID="title" runat="server"> <title><%=this.Page.Title%></title> </asp:ContentPlaceHolder> </head> 查看页面可以覆盖整个“标题”内容占位符: <asp:Content ID="Content1" ContentPlaceHolderID="title" runat="server">
  • ASP.NET母版页和内容页中的表单元素(Form Elements in ASP.NET Master Pages and Content Pages)
    问题 好的,我当前项目中的另一个坎bump。 我从来没有在我的两个主页和内容页的表单元素,我倾向于把所有形式的内容的相关指令。 但是,在当前项目中,我们有一个页面,他们需要两者。 右上方的登录表单和内容中的问题表单。 试图弄明白这一点之后,我遇到了ASP.NET的问题,抱怨在母版页中需要单个表单元素。 TBH,我真的不明白为什么这是ASP.NET的要求,但是,嘿。 有谁知道/是否/如何使母版页和内容页包含独立工作的表单元素? 如果没有,您能否提供有关如何继续获得所需外观/功能的建议? 回答1 以为我会回顾一些悬而未决的问题,看看是否可以解决其中的一些问题。 这是一个有趣的。 我完全拒绝相信您只能在ASP.NET页面上使用一种表单。 这对我来说毫无意义。 我已经看到很多网页在一个网页上具有多个表单,为什么ASP.NET页应该有所不同? 所以,这让我开始思考。 为什么ASP.NET页需要表单元素? ASP.NET页尝试通过PostBack模型提供状态持久性来模拟WinForms环境。 这为无状态环境提供了状态元素。 为此,运行时需要能够在每个“表单”中维护此状态。 它通过将数据回传到自身来实现。 重要的是要注意: 关于PostBack并没有真正的幻想。 它使用来自任何其他堆栈的HTTP形式和POST(与任何其他形式相同)。 仅仅因为看起来它可能正在做一些特别的事情,不是这样
  • 更改导航ID以突出显示当前页面ASP.NET的编程解决方案(Programmatic solution to change navigation id to highlight current page ASP.NET)
    问题 我正在使用Visual Studio 2008和ASP.NET 3.5编写网站。 我设置了一个母版页,以简化布局并保留内容页面的内容,而不是内容和布局。 导航是列表,css使其看起来像一个栏。 为了突出显示栏上的页面,列表项需要看起来像这样<li id="current"> 。 如果可以避免,我不想使用<asp:ContentPlaceHolder> 。 是否可以将某些代码添加到我的每个页面(或仅添加到母版页面?)来完成此操作,还是我被困在<asp:ContentPlaceHolder>的代码上? 回答1 将一个属性添加到您的母版页称为页面节 public string PageSection { get; set; } 将MasterType页面指令添加到内容页面的顶部 <%@ MasterType VirtualPath="~/foo.master" %> 在后面的内容页面代码中,设置母版页的PageSection属性 Master.PageSection = "home"; 在您的母版页中,将body标签作为服务器标签 <body ID="bodyTag" runat="server"> 在后面的母版页代码中,使用该属性在body标签上设置一个类 bodyTag.Attributes.Add("class", this.PageSection)
  • 如何在母版页上使用JQuery?(How to use JQuery with Master Pages?)
    问题 只要不涉及母版页,我就可以使简单的示例正常工作。 我要做的就是单击一个按钮,并使用母版页在.js文件中用javascript告诉它“ hello world”。 任何帮助,非常感谢:) 回答1 编辑 正如@Adam在评论中指出的那样,有一个本机的jQuery机制与我最初的回答中的hack基本相同。 使用jQuery,您可以做 $('[id$=myButton]').click(function(){ alert('button clicked'); }); 我的黑客最初是作为ASP.NET的原型工作而开发的,我将其修改为原始答案。 请注意,jQuery基本上是在后台执行相同的操作。 不过,我还是建议使用jQuery方式来实现我的hack。 原始答案留给评论上下文 当您使用母版页时,ASP.NET会处理从属页上控件的名称。 您需要找出一种方法来找到向其添加处理程序的正确控件(假设您要使用javascript添加处理程序)。 我使用此功能来做到这一点: function asp$( id, tagName ) { var idRegexp = new RegExp( id + '$', 'i' ); var tags = new Array(); if (tagName) { tags = document.getElementsByTagName( tagName ); }
  • 如何从 ASP.NET 3.5 中的网页内容页面设置页面标题(How to set Page's Title from a web content page in ASP.NET 3.5)
    问题 我已经阅读了很多关于如何做到这一点的帖子/文章,但我仍然没有从内容页面获得页面标题设置。 我的页面呈现正常,但我无法从内容页面获取标题集(所有页面的标题都按照母版页设置)。 这是我的母版页的代码隐藏: Partial Class zSEO Inherits System.Web.UI.MasterPage Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Page.Header.Title = "Dynamically set in Master page" End Sub End Class 这是母版页的其余部分: <%@ Master Language="VB" EnableTheming="true" Inherits="zSEO" CodeFile="zSEO.master.vb" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
  • 如何将母版页分配给现有的 .aspx 页面?(How to assign a master page to a existing .aspx page?)
    问题 如何将母版页分配给现有的 .aspx 页? 回答1 将现有的 .aspx 页面分配给母版页时,网页的所有基本元素现在都驻留在母版页中,如标题、正文、标题等。因此,如果您的页面使用这些元素是为了给网页提供标题等,在标签中定义javascripts...所有这些操作现在都需要在母版页上完成。 但是,如果您需要在子页面级别为这些元素分配相应的值,那么您需要在母版页的 head 标记中定义一个内容占位符。 另一个内容占位符应放置在母版页的正文中。 在子页面,您将有两个内容占位符,一个用于头部,另一个用于身体。 之后,您需要将所需的代码放在相应的内容占位符中。 回答2 将此添加到您现有的 aspx 页面声明中: MasterPageFile="~/SomeMasterPage.Master" 还应该提到,要将特定于页面的内容添加到您的页面,您还需要将任何内容标签(在您的母版页中定义)添加到您的 aspx 页面: <asp:Content ID="myContent" ContentPlaceHolderID="someContent" runat="server"> // Page Content goes here </asp:Content> 如果您不放入这些内容,则将使用母版页中的默认内容。 回答3 在 aspx 页面中使用页面级别指令: <%@ page language="C
  • ASP.NET 母版页(概述、创建)
    文章目录 一、母版页概述1、母版页的运行机制2、母版页的优点 二、创建母版页三、创建内容页 一、母版页概述 母版页的主要功能是:创建统一的用户界面和样式。它由一个母版页和(多个)内容页构成,这些内容页和母版页合并将母版页的布局与内容页的内容组合在一起输出。 它可以简化以往重复设计每个Web页面的工作。母版页中承载了网站的统一内容和设计风格。 母版页是具有扩展名.master的文件,它包含静态文本、HTML元素和服务器控件的预定义布局。母版页由特殊的@Master识别,该指令替换了普通.aspx页面的@Page指令。 内容页包含页面中的非公共内容。通过创建各个内容页来定义母版页的占位符控件的内容,这些内容页是绑定到特定母版页的ASP.NET页(.aspx文件以及可选的代码隐藏文件)中。 使用母版页,必须首先创建母版页再创建内容页。 1、母版页的运行机制 在运行的时候,母版页按照下面的步骤处理: (1)通过输入内容页的URL来请求某页(2)获取之后,读取该页的@Page指令。如果该指令引用一个母版页,则读取该母版页。如果是第一次请求这两个页,则两个页都要进行编译。(3)包含更新内容的母版页合并到内容页的控件树中。(4)各个Content控件的内容合并到母版页相应的ContentPlaceHolder控件中。(5)浏览器中呈现得到的合并页。 2、母版页的优点
  • 从内容页面设置母版页的属性,并从asp.net中的另一个内容页获取该属性值(set property of master page from content page and get that property value from another content page in asp.net)
    问题 我有一个具有一种属性名称事件类型的母版页。 现在,我想从内容页面设置此属性,然后该属性值应可用于另一个内容页面。 asp.net有可能吗? 如果是的话,请帮帮我。 是的,我的内容页面已经继承了另一个不是母版的页面。 回答1 如果此属性是您添加到母版页的自定义属性,则必须将MasterType声明添加到合并了它的页面上。 <%@ MasterType virtualpath="~/Path/To/Your.master" %> 这使网站或应用程序可以在编译时知道母版页的特定类型,并允许您像访问控件中的任何其他属性一样访问母版页。 Page.Master.MyCustomerProperty = someValue; 编辑:作为旁注,在将此属性移至下一个控件时,最好创建(并引发)一个指示该属性已更改的自定义事件。 这样,许多控件可以订阅事件和“自我更新”,而不必担心设置属性的时间。 示例:在母版页中,您可以将事件定义为“全局”变量。 然后在您的财产中可以引发此事件。 public event EventHandler myPropertyChanged; public delegate void MyPropertyChanged(object sender, EventArgs e); //... public string MyProperty { get { return
  • 如何从asp.net中的母版页访问内容页面控件(How to access content page controls from master page in asp.net)
    问题 从内容页面访问母版页控件非常容易,例如 protected void Page_Load(object sender, EventArgs e) { // content page load event DropDownList thisDropDown = this.Master.FindControl("someDropDown") as DropDownList; userLabel.Text = thisDropDown.SelectedValue; } 但是我怎么能从母版页访问内容页面的控件。 假设内容页面中有一个文本框,母版页中有一个按钮。 我希望当我单击母版页按钮时,我想在母版页标签的内容页中显示文本框的文本。 如何实现它。 请帮助我提供代码示例。 谢谢。 回答1 在母版页按钮单击事件应通过以下方式访问页面内容:- protected void Button1_Click(object sender, EventArgs e) { TextBox TextBox1 = (TextBox)ContentPlaceHolder1.FindControl("TextBox1"); if (TextBox1 != null) { Label1.Text = TextBox1.Text; } } 回答2 已经有一段时间了,但我相信您可以通过使用
  • 母版页是否首先被调用?(Does master page get called first?)
    问题 我认为这是真的,但想抛出这个问题。 母版页是在 ASP.NET 中首先执行的,还是正在检索的页面? 我问是因为我想在母版页中完成一些处理,其结果被加载到一个静态对象中,然后可以被调用的页面使用(例如用户数据) 回答1 抱歉只是引用,但我不知道要添加什么: 各个 ASP.NET 服务器控件都有自己的生命周期,类似于页面生命周期。 例如,控件的 Init 和 Load 事件发生在相应的页面事件期间。 尽管 Init 和 Load 在每个控件上都递归地发生,但它们以相反的顺序发生。 每个子控件的 Init 事件(以及 Unload 事件)发生在为其容器(自下而上)引发相应事件之前。 但是,容器的 Load 事件发生在其子控件的 Load 事件之前(自上而下)。 母版页的行为类似于页面上的子控件:母版页 Init 事件发生在页面 Init 和 Load 事件之前,母版页 Load 事件发生在页面 Init 和 Load 事件之后。 http://msdn.microsoft.com/en-us/library/ms178472.aspx 回答2 执行优先级 内容页母版页用户控制 回答3 大多数页面事件将在母版页上的相应事件之前被调用(本质上母版页被认为是它链接到的页面的一部分- 它是一个用户控件)。 有关详细信息,请参阅 ASP.Net 2.0 - Master Pages
  • ScriptManager必须出现在需要它的任何控件之前(The ScriptManager must appear before any controls that need it)
    问题 我创建了一个新的ASP.NET Web应用程序,并且在调试后出现了服务器错误 ID为“ WaitingPopup1”的控件需要页面上的ScriptManager。 ScriptManager必须出现在需要它的任何控件之前。 我是ASP.NET的新手,所以我应该将ScriptManager安装在web.config中的哪个位置? 回答1 ScriptManager是需要添加到您创建的页面的ScriptManager 。 看一下这个示例AJAX应用程序。 <body> <form runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> ... </form> </body> 回答2 如果您在页面上使用microsoft ajax,则需要将脚本管理器控件添加到母版页或需要它的页面。 它管理ASP.NET Ajax脚本库和脚本文件,部分页面呈现以及用于Web和应用程序服务的客户端代理类的生成 <asp:ScriptManager ID="ScriptManger1" runat="Server"> </asp:ScriptManager> 充分利用 <asp:ScriptManager AllowCustomErrorsRedirect="True|False
  • 如何从子页面控制asp.net主页上的元素(How to control elements on a asp.net master page from child page)
    问题 我在asp.net网站上有几页想要关闭母版页上的控件。 有没有一种方法可以与子页面中的母版页进行通信? 回答1 最简单的方法是在母版页上设置一个属性,该属性可在调用时处理打开/关闭功能。 然后在您的子页面中设置MasterType指令,以获取对您的母版页的强类型引用,从而无需进行强制转换。 您的子页面将具有: <%@ MasterType VirtualPath="~/Site1.Master" %> 并调用母版页的属性: Master.MyLabel = false; // or true 因此,在您的主人上,您可能会: public bool MyLabel { get { return masterLabel.Enabled; } set { masterLabel.Enabled = value; } } 回答2 您需要在页面标记中使用MasterType指令 <%@ MasterType TypeName="Namespace.Etc.MyMasterPage" %> 然后,您将可以使用来访问页面母版页的所有公共属性。 this.Master.PropertyIWantToIntefereWith... 希望这可以帮助 回答3 这是一个如何与子页面中的母版页进行通信的示例。 在母版页中,为要访问的控件创建一个属性,例如一个名为lblUser ...的标签。
  • 有人使用自定义 ViewMasterPage 吗?(Anyone Using a Custom ViewMasterPage?)
    问题 最近,当我构建我的 asp.net mvc 应用程序时,我倾向于在我的母版页中始终需要计算、格式化和配置许多项目。 其中一些项目包括: 我喜欢像 WordPress 一样将特定的分类附加到 body 标签上,以帮助我的 CSS。 我通常会附上动作的名称、控制器、页面模板等。 我喜欢在我的母版页中使用自定义 IIdentity。 这个 IIdentity 包括用户漂亮的 Display Name、UserID、UserName 等。 等等...取决于项目 我实现这一目标的方式也发生了变化。 我首先发送 ViewData 以及每个操作结果以填充母版页中的内容。 示例-> // in the action ViewData["BodyClasses"] = "index home default"; ViewData["UserData"] = userData; return View(); // in the master page <% UserData userData = (UserData)ViewData["UserData"] %> ... <body class="<%= (string)ViewData["BodyClasses"] %>"> 那太可怕了。 所以我开始在我的母版页顶部放置一些变量,并根据我们必须在母版页中使用的对象填充它们。 例子-> <%@
  • 一个页面只能有一个服务器端表单标签(a page can have only one server-side form tag)
    问题 我正在使用母版页,运行此页时,它显示以下错误消息: 一个页面只能有一个服务器端表单标签 我怎么解决这个问题? 回答1 我认为您确实是这样的: <asp:Content ID="Content2" ContentPlaceHolderID="MasterContent" runat="server"> <form id="form1" runat="server"> </form> </asp:Content> 不需要表单标签。 因为您已经在母版页中拥有相同的标签。 因此,您只需删除它,它应该可以正常工作。 回答2 听起来您在母版页和引发错误的页中都有一个表单标记。 您只能有一个。 回答3 您的页面是否包含这些 <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> </asp:content> 标签,您的所有控件都在其中吗? 您应仅在MasterPage中具有Form标记。 这是我的一些理解和建议: 可以将HTML元素放在html页面的主体中,并且html页面确实支持多个元素,但是它们不能彼此嵌套,可以从W3C html规范中找到详细说明: FORM元素 http://www.w3.org/MarkUp/html3/forms.html 对于ASP.NET
  • ASP.NET MVC4重定向到登录页面(ASP.NET MVC4 Redirect to login page)
    问题 我正在使用ASP.NET MVC 4和C#创建一个Web应用程序。 我希望所有用户在使用应用程序之前均已登录。 我正在将ASP.NET Membership与自定义数据库一起使用。 一种方法是检查每个函数中的Membership.GetUser()是否为null。 但是,没有比在每个函数中检查用户登录状态更简单的方法了吗? (也许正在检查web.config,global.asax等...?) 回答1 当然,使用[Authorize]装饰您的动作或整个类,这将要求用户首先登录。 回答2 在您只希望登录用户访问的每个操作上都添加[Authorize] 。 您也可以在控制器级别执行此操作,以确保控制器内的所有操作均得到保护。 后者可能最适合您,因为您可能只希望对来宾禁用所有页面。 这是类级别的样子: [Authorize] public class SomethingController { //... } 这是一个操作级别的操作: public class SomethingController { [Authorize] public ActionResult SomeAction(Parameter someParameter) { //... } } 如果您的全部或大部分页面都使用相同的母版页,则另一种方法是: <script type="text/javascript>
  • 母版页是否知道正在显示哪个页面?(Does a MasterPage know what page is being displayed?)
    问题 当我在使用MasterPages的网站上导航时,应用程序是否知道我在哪个页面上? 如果是这样,它是否将其存储在我可以访问的对象中? 我问的原因是这样我可以代替它: //masterpage <div id="nav_main"> <ul><asp:ContentPlaceHolder ID="navigation" runat="server"> </asp:ContentPlaceHolder></ul> </div> //content page(s) <asp:Content ContentPlaceHolderID="navigation" ID="theNav" runat="server"> <li><a href="default.aspx">Home</a></li> <li id="current"><a href="faq.aspx">FAQ</a></li> <li><a href="videos.aspx">Videos</a></li> <li><a href="#">Button 4</a></li> <li><a href="#">Button 5</a></li> </asp:Content> 通过一种更为优雅的导航解决方案,该解决方案通过将列表项的ID设置为“当前”来突出显示指向页面的链接。 当前
  • Jquery 标签和 css 问题(Jquery Tabs and css issue)
    问题 一旦用户单击选项卡标题,我将在母版页中使用 jquery 选项卡打开 aspx 文件。 但是,如果我使用我的页面作为链接,它将重复“标题”部分(类似于:jquery 选项卡和 asp.net 母版页问题)。 已经尝试过解决方案,但无法理解它。 有人可以帮忙吗。 这是我在母版页中的代码: <form id="form1" runat="server"> <div class="mainWrapper"> <div class="wrapper"> <div class="header"> <a href="" class="logo"></a> <div class="topToolbar"> <span>Welcome <a href="/" class="logOut">Log Out</a></span> </div> </div> <div class="container"> <div id="tabs"> <div class="tabsCenter"> <ul> <li><a href="Myfirstpage.aspx">First</a></li> <li><a href="SecondPage.aspx">Second</a></li> </ul> </div> <div class="tabsBottom"> </div> </div> <asp
  • 在母版页中声明会话字典(declaring a session dictionary in a master page)
    问题 如何在母版页中声明名为 MyDic 的字典? 我希望 MyDic 保存以日期为键的对象列表 MyObj,以便我可以编写如下内容:“从 MyDic 获取日期 1/28/2011 的列表”或“将这个 MyObj 列表从 1/28/ 2011 年在 MyDic”。 我想在母版页中声明字典,以便我可以在每个页面中访问它。 谢谢。 回答1 您打算如何保留该列表? 您可以将其创建为应用程序变量,或者如果它是特定于用户的会话变量,而不是在母版页中创建它。 在任何一种情况下,您都会执行以下操作: Dictionary<DateTime, myObj> myList = new Dictionary<DateTime, myObj>(); 然后你将它存储在某个地方: Session["MyList"] = myList; 当您需要再次访问它时: Dictionary<DateTime, myObj> myList = (Dictionary<DateTime, myObj>)Session["MyList"]; 您可以在初始化或加载时在母版页中进行声明,或者更好的是我建议在会话或应用程序的 global.asax 文件中进行声明 回答2 您可以在母版页上创建一个公共属性,然后通过设置MasterType指令在内容页中使用它。 例如,如果您有一个名为 MyMasterPage 的母版页
  • 将母版页中的资源文化变化传播到内容网页(Propagting the resource culture change in master page to the content web pages)
    问题 在 Web 应用程序方面,我是个菜鸟。 但是我正在尽力使用 ASP.NET 2.0 来学习它,并且很抱歉这篇长文章。 我有一个母版页(M1)和 3 个不同的内容页 C1、C2、C3,它们基本上使用母版页 M1 在内容占位符中填充其各自的内容。 所有网络表单都已本地化,并在资源 (xml) 文件中添加了适当的语言资源字符串,例如:Resource.en-US.xml、Resource.de-DE.xml 等。最后在代码中引用资源在设置适当的当前文化和当前 uiculture 之后。 Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US"); //where the btnSubmit is a control on the form btnSubmit.Text = rm.GetString("Submit", Thread.CurrentThread.CurrentCulture); 现在问题来了,我在用户可用的母版页中包含了一个更改显示语言的选项,作为带有 asp:image 的 asp:linkbutton。 每当用户单击所需语言的链接按钮时
  • 如何从 MVC 部分控件中包含 css 文件?(How can I include css files from an MVC partial control?)
    问题 我正在使用 ASP.NET MVC,我有一个需要包含特定 CSS 和 JS 文件的部分控件。 有没有办法让父页面在页面的“头部”部分呈现script和link标签,而不是仅仅在部分控制中内联呈现它们? 为了澄清我想要包含文件的控件是从带有Html.RenderPartial的视图Html.RenderPartial ,因此不能有服务器端内容控件。 我希望能够在 html head部分包含文件以避免验证问题。 回答1 http://www.codeproject.com/Articles/38542/Include-Stylesheets-and-Scripts-From-A-WebControl-.aspx 本文包含有关覆盖 HttpContext.Response.Filter 的信息,这对我很有用。 回答2 如果我对分部视图中的 CSS/Javascript 有要求,我只需确保任何可能包含分部视图的页面(直接或作为从 AJAX 检索的内容)的标题中都包含 CSS/Javascript。 如果页面有母版页,我会在母版页标题中添加一个内容占位符并将其填充到子页面中。 为了在局部视图中获得智能感知,我在局部视图中添加了 CSS/Javascript 包含,但用if (false)代码块包装,因此它们在运行时不包含在内。 <% if (false) { %> <link href