Как сделать переменную на странице aspx видимой для нескольких разделов контента на этой странице в ASP.NET MVC? - PullRequest
0 голосов
/ 05 января 2012

У меня есть страница aspx с несколькими разделами содержимого в приложении ASP.NET MVC.Мне нужно рассчитать значение на основе URL-адреса страницы (используя пользовательский HtmlHelper) на странице и использовать это значение на двух из этих страниц содержимого.Как мне объявить это значение (или, если быть более точным, переменную, содержащую это значение), чтобы оно было видно из обоих разделов содержимого.

Вот некоторые подробности:

    <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 один раз и использовать ее дважды, один раз в каждом частичном.

Ответы [ 2 ]

2 голосов
/ 05 января 2012

Вы можете объявить переменную вне этих разделов:

<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 голосов
/ 05 января 2012

Просто используйте это вспомогательное значение html в своих разделах контента. Что мешает вам просто вызывать этот HtmlHelper из каждого раздела контента?

Если вы должны передать его, рассмотрите один из нескольких методов, ViewModel, TempData и т. Д., Но не понимая, как вы используете разделы контента, трудно сказать.

Вы имеете в виду макет с несколькими разделами контента?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...