2012-01-05 43 views
0

我有一個aspx頁面,在ASP.NET MVC應用程序中有多個內容部分。我需要根據頁面URL(使用自定義HtmlHelper)在頁面上計算一個值,並在這些內容頁面中的兩個頁面中使用該值。我該如何聲明這個值(或者更確切地說是保存該值的變量),以便從兩個內容部分都可以看到它。如何在ASP.NET MVC中的該頁面上的多個內容節可見aspx頁上的變量?

下面是一些細節:

<asp:Content ID="indexTitle" ContentPlaceHolderID="TitleContent" runat="server"> 
     <% 
       var titleAndDescription = Helpers.TitleAndDescription.GetTitleAndDescription(Request.RawUrl); 
       Response.Write(titleAndDescription.Title); 
      %> 

    </asp:Content> 

<asp:Content id="indexDescription" ContentPlaceHolderID="MetaTagsContent" runat="server"> 
    <meta name="Description" content=<%Response.Write(titleAndDescription.Description);%> /> 
</asp:Content> 

所以我想一次計算變量titleAndDescription並在每個部分使用了兩次,一次。

+0

你的問題建議你沒有正確使用MVC。 – 2012-01-05 04:46:54

+0

@AndrewBarber謝謝!我在問題中添加了一些代碼以顯示我正在嘗試執行的操作。 – Barka 2012-01-05 05:00:44

回答

2

你可以聲明變量的部分之外:

<script type="text/c#" runat="server"> 
    string foo = "bar"; 
</script> 

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> 
    <%: foo %> 
</asp:Content> 

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 
    <h2><%: foo %></h2> 
</asp:Content> 
+0

謝謝!你多次救了我。 – Barka 2012-01-19 21:33:58

+0

@ darin-dimitrov我們可以在頁面後面的代碼中訪問這些變量嗎? – Meer 2016-08-19 11:06:26

0

只需在內容部分中使用該html幫助器值。什麼阻止你從每個內容部分調用HtmlHelper?

如果你必須通過它,考慮幾種技術之一,ViewModel,TempData等,但沒有看到你如何使用內容部分很難說。

您是指具有多個內容部分的佈局嗎?

+0

謝謝!我正在努力提高效率。我想要一次計算出的值,然後重新使用。而不是重新計算一次。這是一個ASP.NET MVC2,而不是剃鬚刀。所以它使用的是ASPX頁面而不是layut頁面。在ASPX頁面中有多個內容部分。 – Barka 2012-01-05 04:48:21

相關問題