簡體   English   中英

如何從asp.net mvc中的PartialView更改PageTitle

[英]how to change PageTitle from PartialView in asp.net mvc

我想從局部視圖更改頁面標題。 但是顯示以下錯誤

Using the Title property of Page requires a header control on the page. (eg <head runat="server" />).

我的主頁頭部分在這里

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

我的默認頁面在這里

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    <%=ViewData["pagetitle"] %>
</asp:Content>

ViewData["pagetitle"]返回當前頁面標題,例如主頁,關於,新聞列表,新聞詳細信息。 但是我想更改當前的新聞信息標題,而不是News Detail字符串。 News Detail頁面包含部分視圖。 部分視圖知道顯示了哪個新聞。

請幫忙

不太確定文件的結構如何,但是如果有一個實體文件夾,您可以在其中從視圖頁面中提取信息,然后在aspx頁面中可以執行以下操作:

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    <%:projectName.Resources.Entities.FolderName.FileName%>
</asp:Content>

由於標題是作為標題部分的一部分呈現的,因此部分視圖無法直接設置頁面標題。

但是您的控制器(獲取要顯示的新聞項)將知道標題是什么,並且可以將“ pagetitle”項添加到ViewData集合中,然后可以在主布局中直接設置或在特定於頁面的設置中設置上面的內容區域。

提示:我建議創建一個名為ViewDataKeys的靜態類,該類具有靜態字符串屬性(或公共const字段),用作ViewData集合的索引器。 在使用多個來源的基於字符串的字典時,這有助於避免重復,拼寫錯誤和區分大小寫錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM