我有一个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一次并使用它两次,每次部分使用一次。
答案 0 :(得分: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>
答案 1 :(得分:0)
只需在内容部分中使用该html帮助器值即可。什么阻止你从每个内容部分调用HtmlHelper?
如果你必须通过它,可以考虑使用ViewModel,TempData等几种技术中的一种,但不知道你如何使用内容部分很难说。
您指的是包含多个内容部分的布局吗?